Como desabilitar/habilitar protocolos de um adaptador específico via linha de comando ou edição de registro

Como desabilitar/habilitar protocolos de um adaptador específico via linha de comando ou edição de registro

Vista da janela de propriedades.

Preciso descobrir uma maneira de automatizar a desativação de determinados protocolos de rede de adaptadores de rede específicos. Eu sei que posso abrir a janela e desmarcar os vários protocolos, como "Protocolo de Internet Versão 6 (TCP/IPv6)" na janela de propriedades de um adaptador de rede específico, mas preciso encontrar uma maneira de fazer isso via linha de comando ou via o registro para que eu possa automatizar o processo. Alguma ideia? -Obrigado!

Responder1

Isso é feito facilmente com o PowerShell. Os comandos a seguir funcionam melhor com o PowerShell integrado ao Windows, pois até o momento as edições do PowerShell Core não têm um bom suporte para esses comandos.

UsarGet-NetAdapterpara listar os adaptadores de rede em seu sistema.

UsarGet-NetAdapterBinding-Name "MyAdapter" -AllBindingspara listar as ligações em um adaptador de rede.

UsarSet-NetAdapterBinding-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $Truepara ativar ou desativar uma ligação pelo nome do componente.

Consulte a documentação vinculada ou execute comandos com o -?sinalizador para obter mais opções.

Responder2

Fiz isso para alguns dos scripts que uso no trabalho.

A qualquer momento há vários adaptadores registrados, alguns loopback. O principal problema é detectar os corretos para sua segmentação e, em seguida, filtrar o restante. Você também deve estar ciente de que as alterações feitas pelo utilitário netsh podem não ser propagadas para a interface wmi até que a reinicialização seja concluída.

Eu sugeriria examinar as funções dos membros WMI do Win32_NetworkAdapterConfiguration ou usar netsh.

Você não faz referência a um sistema operacional, presumo que esteja se referindo ao Windows. Eu sugeriria o Powershell, pois ele vem com o Windows 7 e posterior e pode ser instalado em sistemas anteriores. Também permite acesso à API da função dotnet.

Responder3

Estava tentando em um servidor 2016 e tive que modificar a linha fornecida por @M.Dundley; é claro que sem a resposta dele, eu não conseguiria construir a minha.

Seguindo a linha, usei tbimdsacomo exemplo:

disable-NetAdapterbinding -name "MyAdapter" -ComponentID tbimdsa

Eu também provei usando enable-NetAdapterbinding. Devo dizer que não funciona em todas as ligações ou propriedades.

informação relacionada