Unfortunately this Question was asked 4 years ago but no answer yet How can I obtain the driver key for a driver programmatically?
actually if it was answered, I would not ask again.
I have a software depends on Naps2 scanner software.I want to generate profiles.xml file and it depends on Driver Key and DeviceName
profiles.xml like below:
<?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>
after searching windows devices I found that the Driver Key {6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000 is in here:
Image may be NSFW.
Clik here to view.
What I need is a PowerShell script or one-line script that gives me a Driver Key like "{6BDD1FC6-810F-11D0-BEC7-08002BE2092F}\0000" with zeros or any number depending on how much scanners are connected to the machine(NOT Class GUID only {6BDD1FC6-810F-11D0-BEC7-08002BE2092F}), and Device Name like below:
Get-WmiObject Win32_PNPEntity | Where-Object { $_.PNPCLass -eq "Image"} | select *
Or
Get-WmiObject Win32_PnPSignedDriver | Where-Object { $_.PNPCLass -eq "Image" } | select *
Thanks in advance