Ich habe einen USB-Barcodescanner an ein Windows 10-Tablet angeschlossen. Ich muss diesen Barcodescanner über ein unter Windows ausgeführtes Powershell-Skript ein- und ausschalten.
Beim Lesen der Microsoft-Dokumentation im Internet scheint es, als sei devcon.exe die richtige Lösung.
Ich habe das entsprechende (x64) Windows-Kit-Paket installiert und kann devcon.exe verwenden, um Geräte zu suchen, Geräte zu entfernen, Geräte hinzuzufügen, ihren Status abzurufen usw.
Wenn ich auf meinem bestimmten Gerät ein „Devcon Disable“ ausführe, sagt Devcon, dass das Gerät nicht existiert.
Bei der Überprüfung des Geräts unter Windows konnte ich die Hersteller-ID (0x065A) lesen.
(Ich habe die folgenden Befehle in einemAdministratorPowershell-Fenster)
PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" status USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3
Name: USB Input Device
Driver is running.
1 matching device(s) found.
Alles gut
PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" enable USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3 : Enabled
1 device(s) are enabled.
Nicht sehr nützlich, da das Gerät bereits funktionierte, aber zumindest bestätigt es, dass devcon mein Gerät sehen kann
nun zum problematischen Teil
PS C:\Users\Hs> & "C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe" disable USB\VID_065A*
USB\VID_065A&PID_A001\6&7998A49&0&3 : Disable failed
No matching devices found.
Irgendeine Idee, was ich falsch mache?
Antwort1
Wenn Sie dies in Powershell ohne Devcon tun möchten, ist es ganz einfach:
Führen Sie es aus get-pnpdevice
, um eine Liste der Geräte zu erhalten. Sie verwenden in Ihrem Beispiel den Instanznamen, sodass Sie den Anzeigenamen verwenden können. Ändern Sie im folgenden Code einfach die Stelle, an der „USB-Eingabegerät“ steht, in den Anzeigenamen Ihres Barcodescanners. Das Skript kann umgekehrt werden, indem „deaktivieren“ in „aktivieren“ geändert wird.
Get-PnpDevice | Where-Object { $_.FriendlyName -match 'USB Input Device' } | Disable-PnpDevice -Confirm:$false