Se eu quiser bloquear / desbloquear dispositivos USB, eu corro em cmd:
:block
reg add "HKLM\SYSTEM\CurrentControlSet\services\USBSTOR" /v Start /t REG_DWORD /d 4 /f
:unblock
reg add "HKLM\SYSTEM\CurrentControlSet\services\USBSTOR" /v Start /t REG_DWORD /d 3 /f
O que eu quero é:
-
gera uma whitelist de dispositivos usb conectados (qualquer usb, inclui teclado, armazenamento usb, mouse, etc). (resolvido com caminho wmic Win32_USBControllerDevice get * > usb.txt )
-
bloqueie / desbloqueie todos os dispositivos USB, exceto a lista de permissões. No linux pode ser feito com o udev. Não tenho ideia de como isso é feito no Windows.
Nota : por favor. Eu prefiro usar batch / wmic / regedit / cmd etc, em vez de USBDeview ou outra solução GUI. Eu também não estou interessado em soluções baseadas em Powershell
Minha pesquisa para resolver o problema :
Eu encontrei uma coleção de scripts baseados em Devcon . Existe um chamado RenewUSB.bat . Este script remove todos os dispositivos USB e, em seguida, procura novamente novos. Pode eventualmente servir como ponto de partida para o que eu quero.
Para baixar o devcon neste link do Microsoft Old . Para obter drivers de lista para todos os dispositivos USB com comandos:
%windir%\system32\devcon.exe DriverFiles =USB > usb.txt
%windir%\system32\devcon.exe find USB\* > usb.txt
%windir%\system32\devcon.exe find *VID* > usb.txt
PD: A maioria dos usb tem o identificador "VID" e "USB". Exemplo:
USB\VID_1C4F&PID_0002&MI_01&1578F7C2&0&0001 : Input device USB
HID\VID_1C4F&PID_0002&MI_00&2B89365C&0&0000 : Keyboard device HID
Para bloquear / desbloquear (dispositivo específico de usb.txt):
USB\VID_13FE&PID_1D00B7912980144 : USB storage device
%windir%\system32\devcon.exe disable *VID_13FE*
%windir%\system32\devcon.exe enable *VID_13FE*
Para bloquear / desbloquear todos os dispositivos usb
%windir%\system32\devcon.exe disable *VID* *USB*
%windir%\system32\devcon.exe enable *VID* *USB*
Por vezes, o devcon não desativa todos os usb. Somente alguns. Exemplo:
USB\VID_1C4F&PID_0002&MI_01&1578F7C2&0&0001 : Disabled
HID\VID_1C4F&PID_0002&MI_00&2B89365C&0&0000 : Disable failed
Neste caso, nenhuma solução. Substitua apenas o comando "disable" por "remove".
%windir%\system32\devcon.exe remove *VID* *USB*
Mas devcon não é uma solução permanente para bloquear e desbloquear dispositivos (como reg add qual é). O teste é que podemos bloquear um dispositivo USB e, em seguida, executar o script bash renewusb_2k.bat , e veremos que o script reinstalar os drivers USB novamente e o dispositivo USB bloqueado se torna acessível novamente. Então devcon não é a solução para o meu pedido.
Obrigado antecipadamente