Desabilitar uma placa ethernet específica por meio de comandos em lote no Windows

4

O que eu gostaria de fazer é desativar uma NIC com base no nome da conexão (também conhecido como: o que você vê na janela "conexões de rede" ou o que você usaria com os comandos netsh).

Sei que habilitar / desabilitar pode ser feito usando o devcon, porém devcon identifica o dispositivo usando o ID do hardware do NIC físico (por exemplo: PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10&282B82B8&0&08F0 ), não o nome da conexão associada a ele (por exemplo: "Local area conexão 2 ").

Então, basicamente, preciso de algo para mapear o nome da conexão para o ID do hardware do dispositivo, conforme retornado por:

devcon listclass Net

Em seguida, a desativação pode ser feita por meio do devcon.

Alguma ideia de como fazer isso? Qualquer maneira mais inteligente / simples de fazer isso?

    
por nray 23.10.2009 / 15:41

4 respostas

2

XP (Lan com fio)

Aqui, NetConnectionStatus = 2 captura a interface de rede ativa (conectada) e 'mais +1' pula a linha de cabeçalho:

C:\>wmic.exe nic where "NetConnectionStatus=2" get PNPDeviceID |more +1
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10&1F7DBC9F&1&30F0

Em seguida, alimente a string (até o primeiro "e" "e" "comercial") para o devcon para desativar e ativar a conexão com a internet :

C:\>devcon.exe disable PCI\VEN_10EC
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10&1F7DBC9F&1&30F0: Disabled
1 device(s) disabled.

C:\>devcon.exe enable PCI\VEN_10EC
PCI\VEN_10EC&DEV_8139&SUBSYS_813910EC&REV_10&1F7DBC9F&1&30F0: Enabled
1 device(s) enabled.

a saída wmic é grande, então com o wordwrap desativado no Bloco de Notas, se você der uma olhada em 1.txt assim, é bastante claro:

C:\>wmic.exe nic > 1.txt

C:\>1.txt

Conexão Wifi do Windows 7 (outra abordagem é devcon.exe)

Isso funcionou para mim:

C:\>wmic.exe nic where "NetConnectionStatus=2" get Index |more +1
12
C:\>wmic.exe path win32_networkadapter where index=12 call disable
C:\>wmic.exe path win32_networkadapter where index=12 call enable
    
por 18.04.2014 / 11:45
1

Para desativar a conexão chamada Local Area Connection e, consequentemente, seu dispositivo:

netsh interface set interface "Local Area Connection" DISABLE

Para verificar isso:

netsh interface show interface

Isso desativará o dispositivo de rede que pode ser verificado usando o gerenciador de dispositivos.

    
por 25.10.2009 / 15:47
0

Se ainda não o fez, verifique definitivamente a pesquisa deste sujeito.

    
por 23.10.2009 / 16:11
0

Aqui está um começo - usar wmic vai te dar algo que você pode alimentar para devcon,

wmic:root\cli>nic where(NetConnectionID="Local Area Connection") get PNPDeviceID
PNPDeviceID
PCI\VEN_8086&DEV_10BD&SUBSYS_10FD1734&REV_02&33FD14CA&0&C8

Assim, um script de shell para encontrar o ID do dispositivo de Conexão de área local seria lido,

wmic nic where(NetConnectionID="Local Area Connection") get PNPDeviceID | find "PCI\"  

Você pode usar o devcon com correspondências parciais do ID do dispositivo, aqui está um comando que usei para desativar a WLAN em 70 Asus Eee Box B203s,

devcon disable PCI\VEN_1814*DEV_0781  

(o * é apenas em vez de escapar do "e" comercial no script)

    
por 23.10.2009 / 16:44