Eu tenho um leitor de código de barras USB conectado a um tablet Windows 10. Preciso ligar/desligar este leitor de código de barras a partir de um script do PowerShell em execução no Windows).
Lendo o documento da Microsoft on-line, parece que devcon.exe é o caminho a percorrer.
Instalei o pacote de kits do Windows apropriado (x64) e consigo usar o devcon.exe para localizar dispositivos, remover dispositivos, adicionar dispositivos, obter seu status, etc.
Quando se trata de executar um "desativar devcon" em meu dispositivo específico, o devcon diz que o dispositivo não existe.
Inspecionando o dispositivo no Windows, consegui ler o ID do fornecedor (0x065A)
(Eu tentei os seguintes comandos em umadministradorjanela do 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.
Tudo certo
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.
Não é muito útil porque o dispositivo já estava funcionando, mas pelo menos confirma que o devcon pode ver meu dispositivo
agora para a 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.
Alguma idéia do que estou fazendo de errado?
Responder1
Se você quiser fazer isso no PowerShell sem devcon, é bem simples:
Execute get-pnpdevice
para obter uma lista dos dispositivos. Você está usando o nome da instância em seu exemplo, isso permitirá que você use o nome amigável. No código abaixo, basta alterar onde diz "Dispositivo de entrada USB" para qualquer nome amigável do seu leitor de código de barras. O script pode ser revertido alterando desativar para ativar.
Get-PnpDevice | Where-Object { $_.FriendlyName -match 'USB Input Device' } | Disable-PnpDevice -Confirm:$false