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-NetAdapter
para listar os adaptadores de rede em seu sistema.
UsarGet-NetAdapterBinding
-Name "MyAdapter" -AllBindings
para listar as ligações em um adaptador de rede.
UsarSet-NetAdapterBinding
-Name "MyAdapter" -ComponentID ms_tcpip -Enabled $True
para 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 tbimdsa
como 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.