【发布时间】:2021-06-13 07:06:03
【问题描述】:
很遗憾,这个问题是 4 年前提出的,但目前还没有答案 How can I obtain the driver key for a driver programmatically?
其实如果回答了,我就不会再问了。
我有一个软件依赖于 Naps2 扫描仪软件。 我想生成profiles.xml 文件,它取决于Driver Key 和DeviceName
profiles.xml 如下:
<?xml version="1.0"?>
<ArrayOfScanProfile xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<ScanProfile>
<Device>
<ID>{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000</ID>
<Name>HP Scanjet 300</Name>
</Device>
<DriverName>wia</DriverName>
<DisplayName>HP Scanjet 300</DisplayName>
<IconID>0</IconID>
<MaxQuality>false</MaxQuality>
<IsDefault>true</IsDefault>
<Version>2</Version>
<UseNativeUI>false</UseNativeUI>
<AfterScanScale>OneToOne</AfterScanScale>
<Brightness>0</Brightness>
<Contrast>0</Contrast>
<BitDepth>C24Bit</BitDepth>
<PageAlign>Right</PageAlign>
<PageSize>Letter</PageSize>
<Resolution>Dpi200</Resolution>
<PaperSource>Glass</PaperSource>
<EnableAutoSave>false</EnableAutoSave>
<Quality>75</Quality>
<AutoDeskew>false</AutoDeskew>
<BrightnessContrastAfterScan>false</BrightnessContrastAfterScan>
<ForcePageSize>false</ForcePageSize>
<ForcePageSizeCrop>false</ForcePageSizeCrop>
<TwainImpl>Default</TwainImpl>
<ExcludeBlankPages>false</ExcludeBlankPages>
<BlankPageWhiteThreshold>70</BlankPageWhiteThreshold>
<BlankPageCoverageThreshold>25</BlankPageCoverageThreshold>
<WiaOffsetWidth>false</WiaOffsetWidth>
<WiaRetryOnFailure>false</WiaRetryOnFailure>
<WiaDelayBetweenScans>false</WiaDelayBetweenScans>
<WiaDelayBetweenScansSeconds>2</WiaDelayBetweenScansSeconds>
<WiaVersion>Default</WiaVersion>
<FlipDuplexedPages>false</FlipDuplexedPages>
</ScanProfile>
<ScanProfile>
<Device>
<ID>HP Scanjet 300 TWAIN</ID>
<Name>HP Scanjet 300 TWAIN</Name>
</Device>
<DriverName>twain</DriverName>
<DisplayName>HP Scanjet 300 TWAIN</DisplayName>
<IconID>0</IconID>
<MaxQuality>false</MaxQuality>
<IsDefault>false</IsDefault>
<Version>2</Version>
<UseNativeUI>false</UseNativeUI>
<AfterScanScale>OneToOne</AfterScanScale>
<Brightness>0</Brightness>
<Contrast>0</Contrast>
<BitDepth>C24Bit</BitDepth>
<PageAlign>Right</PageAlign>
<PageSize>Letter</PageSize>
<Resolution>Dpi200</Resolution>
<PaperSource>Glass</PaperSource>
<EnableAutoSave>false</EnableAutoSave>
<Quality>75</Quality>
<AutoDeskew>false</AutoDeskew>
<BrightnessContrastAfterScan>false</BrightnessContrastAfterScan>
<ForcePageSize>false</ForcePageSize>
<ForcePageSizeCrop>false</ForcePageSizeCrop>
<TwainImpl>Default</TwainImpl>
<ExcludeBlankPages>false</ExcludeBlankPages>
<BlankPageWhiteThreshold>70</BlankPageWhiteThreshold>
<BlankPageCoverageThreshold>25</BlankPageCoverageThreshold>
<WiaOffsetWidth>false</WiaOffsetWidth>
<WiaRetryOnFailure>false</WiaRetryOnFailure>
<WiaDelayBetweenScans>false</WiaDelayBetweenScans>
<WiaDelayBetweenScansSeconds>2</WiaDelayBetweenScansSeconds>
<WiaVersion>Default</WiaVersion>
<FlipDuplexedPages>false</FlipDuplexedPages>
</ScanProfile>
</ArrayOfScanProfile>
搜索 windows 设备后,我发现 Driver Key {6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000 在这里:
我需要的是一个 PowerShell 脚本或单行脚本,它为我提供了一个驱动程序密钥,例如 "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000",其中包含零或任何数字,具体取决于关于有多少扫描仪连接到机器 (NOT Class GUID only {6BDD1FC6-810F-11D0-BEC7-08002BE2092F}),设备名称如下:
Get-WmiObject Win32_PNPEntity | Where-Object { $_.PNPCLass -eq "Image"} | select *
或者
Get-WmiObject Win32_PnPSignedDriver | Where-Object { $_.PNPCLass -eq "Image" } | select *
提前致谢
【问题讨论】:
-
试试
Win32_PnPEntity类。 -
已经完成,但是如何根据附加图像获取驱动程序密钥
-
为什么不直接使用 PNPUtil.direct。
PNPUtil /help
标签: powershell cmd powershell-2.0 powershell-3.0 powershell-4.0