Tengo un escáner de código de barras USB conectado a una tableta con Windows 10. Necesito encender/apagar este escáner de código de barras desde un script de PowerShell que se ejecuta en Windows).
Al leer el documento de Microsoft en línea, parece que devcon.exe es el camino a seguir.
Instalé el paquete de kits de Windows apropiado (x64) y puedo usar devcon.exe para buscar dispositivos, eliminar dispositivos, agregar dispositivos, obtener su estado, etc.
Cuando se trata de ejecutar una "desactivación de devcon" en mi dispositivo en particular, devcon dice que el dispositivo no existe.
Al inspeccionar el dispositivo desde Windows pude leer la identificación del proveedor (0x065A)
(Probé los siguientes comandos en unadministradorventana de powershell)
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.
Todo está bien
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.
No es muy útil ya que el dispositivo ya estaba funcionando, pero al menos confirma que devcon puede ver mi dispositivo.
ahora viene la parte problemática
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.
¿Alguna idea de lo que estoy haciendo mal?
Respuesta1
Si quieres hacer esto en powershell sin devcon, es bastante simple:
Ejecute get-pnpdevice
para obtener una lista de los dispositivos. Está utilizando el nombre de instancia en su ejemplo, esto le permitirá usar el nombre descriptivo. En el código siguiente, simplemente cambie donde dice "Dispositivo de entrada USB" para que sea el nombre descriptivo de su escáner de código de barras. El script se puede revertir cambiando deshabilitar a habilitar.
Get-PnpDevice | Where-Object { $_.FriendlyName -match 'USB Input Device' } | Disable-PnpDevice -Confirm:$false