Altere as configurações de velocidade / duplex da NIC no script?

3

Eu tenho um laptop executando o Windows Server 2003 SP2, com o PowerShell instalado.

Ocasionalmente, esse sistema deve ser usado em ambientes em que ele precisa que a NIC seja configurada manualmente como 100 Mbps / Full Duplex para funcionar corretamente. Na maioria dos outros ambientes, isso precisa ser definido como Detecção automática para melhor desempenho.

Normalmente, faço isso por meio do seguinte procedimento:

  • Clique com o botão direito do mouse em Meus locais de rede e selecione Propriedades.
  • Clique com o botão direito em Conexão local, selecione Propriedades
  • Clique em Configurar
  • Na guia Avançado, selecione a opção Velocidade & Propriedade Duplex e altere o valor de Auto para 100 Mb Full.
  • Inverte a alteração quando terminar o trabalho.

Existe uma maneira de fazer isso via script em lote ou PowerShell? Eu estou procurando fazer algo assim:

@ECHO OFF
[Insert 100 Mbps/Full Duplex commands here]
ECHO NIC set to 100 Mbps/Full Duplex
ECHO Press any key to return to Auto-Detect
PAUSE
[Insert Auto-Detect commands here]
ECHO NIC returned to Auto-Detect
ECHO Press any key to exit
PAUSE

Já me disseram que pode haver alguns métodos para fazer isso via WMIC ou PowerShell, mas não consegui encontrar os switches, valores ou sintaxes adequados.

    
por Iszi 17.03.2011 / 15:24

1 resposta

5

Parece que essa é uma configuração específica do fornecedor, conforme observado em um encadeamento de technet Aqui

Ele observa que fazer uma alteração de registro na chave da NIC em HKLM \ SYSTEM \ CurrentControlSet \ Control \ Class \ (GUID) \ (INTNUM) \ (chave específica do fornecedor) deve ser suficiente, mas acho que você também deve adicione algo lá para desativar e reative a NIC ao alterá-la.

Veja um exemplo de script em lote que incorpora todos os itens acima com o modelo na pergunta.

@echo off  
reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}
@echo off  
reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}%pre%01 /v RequestedMediaType /d 6 /t REG_SZ /f  
netsh interface set interface "Local Area Connection" DISABLED  
netsh interface set interface "Local Area Connection" ENABLED  
echo Connection set to 100 Mb/Full Duplex  
echo Press any key to change back to Auto  
PAUSE  
reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}%pre%01 /v RequestedMediaType /d 0 /t REG_SZ /f  
netsh interface set interface "Local Area Connection" DISABLED  
netsh interface set interface "Local Area Connection" ENABLED  
echo Connection set to Auto  
echo Press any key to exit  
PAUSE  
01 /v RequestedMediaType /d 6 /t REG_SZ /f netsh interface set interface "Local Area Connection" DISABLED netsh interface set interface "Local Area Connection" ENABLED echo Connection set to 100 Mb/Full Duplex echo Press any key to change back to Auto PAUSE reg add HKLM\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002bE10318}%pre%01 /v RequestedMediaType /d 0 /t REG_SZ /f netsh interface set interface "Local Area Connection" DISABLED netsh interface set interface "Local Area Connection" ENABLED echo Connection set to Auto echo Press any key to exit PAUSE

Para que o script acima funcione para você, talvez seja necessário alterar o seguinte.

  • Tudo após "\Class\" na chave do Registro pode precisar ser alterado para corresponder à chave apropriada em seu sistema. Procure uma chave que comece em {4D36E972 e trabalhe de lá para encontrar a que você precisa.
  • Os parâmetros para as opções /v , /d e /t devem ser definidos para corresponderem à configuração específica do fornecedor do seu sistema.
  • Altere "Local Area Connection" , se necessário, para corresponder ao nome da interface em que você está trabalhando.

Como sempre, certifique-se de fazer um backup completo do Registro antes de tentar qualquer alteração não testada.

    
por 17.03.2011 / 15:33