Como escrever um script do windows para alterar as configurações de rede em tempo real

Esta semana, me deparei com um problema interessante. Em muitos escritórios ou ambientes de trabalho, pode ser necessário redefinir as configurações de rede para se conectar a redes diferentes. Por exemplo, algumas pessoas levam a sua casa laptop com eles e ter um IP estático criado especificamente para essa máquina. No entanto, uma vez que a rede de trabalho é geralmente DHCP, que exige que a pessoa que ficar mudando as configurações de rede entre um IP estático ou DHCP automática dependendo de onde eles são.

Um problema mais comum é para engenheiros ou equipe de TI, que muitas vezes precisam se conectar a dispositivos ou máquinas em uma rede pequena dentro de um edifício. Para se conectar a essa rede isolada, você tem que mudar suas configurações de rede para um IP estático. Mais tarde, quando você se reconectar à rede corporativa, ele está de volta para DHCP novamente.

Eu encontrei-me nesta situação muitas vezes, e fiquei tão cansada de navegar para a placa de rede, abrindo as configurações de IP e fazer essas edições, que eu decidi que era hora de montar um script VB que faria tudo em um ou dois cliques. Se você seguiu junto com meus artigos de programação, então você sabe que eu amo scripts de VB. Eu usei uma vez para criar um computador possuído, e também utilizados para a automatizar o Microsoft SyncToy para backups de dados.Criar um computador Possuidor Freaky com Windows Script Para o Dia das BruxasCriar um computador Possuidor Freaky com Windows Script Para o Dia das BruxasHá um monte de brincadeiras divertidas que você pode jogar em seus amigos com um computador. Você provavelmente já viu todos esses vídeos assustadores do YouTube que as pessoas para a frente um para o outro para um bom susto ....consulte Mais informação

Também é possível realizar essa tarefa com o script VB, e é mesmo possível para torná-lo flexível o suficiente para que ele pode aceitar a entrada do usuário para o endereço de IP estático. Neste artigo, vou mostrar-lhe como fazê-lo em três seções.

Criação de uma Rede Configuração Mudança Script

Existem três principais tarefas que você precisa realizar com o roteiro, a fim de criar este pequeno aplicativo para mudar as configurações de rede. A primeira é usar o script para criar configurações de IP estático. O próximo é chegar com um script para habilitar DHCP. Finalmente, a última é para perguntar ao usuário qual tarefa que eles querem fazer, e usar esse feedback para realizá-lo.

Video: Alterar o MTU do windows

VB Script para definir as configurações de IP estático

Lembre-se, os seguintes scripts precisam ser salvos como um arquivo de texto com uma extensão .wsf, a fim de trabalhar em um PC com Windows. O script a seguir irá alterar as configurações de rede para um IP estático com uma máscara de sub-rede e padrão GateWall específico, com todos os três codificado no script.

Para todas as amostras de código listados neste artigo, certifique-se de adicionar “ no final, caso contrário, o código não será executado.
Aqui está o script estática mudança IP:

Opção ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim arrGatewayDim colNetAdaptersDim errEnableStaticDim errGatewaysstrComputer = "."arrIPAddress = Array ("192.168.1.106") ArrSubnetMask = Array ("255.255.255.0") ArrGateway = Array ("192.168.1.1") Definir objWMIService = GetObject ("winmgmts: " & strComputer & " Root cimv2"Jogo) colNetAdapters = (objWMIService.ExecQuery"Selecione * de Win32_NetworkAdapterConfiguration onde IPEnabled = TRUE") Para cada objNetAdapter em colNetAdapterserrEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) If Not errEnableStatic = 0 ThenWScript.Echo "Fracasso atribuição de IP / Sub-rede."Acabar IferrGateways = objNetAdapter.SetGateways (arrGateway) If Not errGateways = 0 ThenWScript.Echo "Fracasso atribuindo Gateway."End IfNextWScript.Quit

Este script usa o serviço do Windows WMI no Windows para realizar o objetivo de alterar as configurações. Você pode ver as três variáveis ​​de matriz fixa carregado com os endereços IP e, em seguida, onde os controlos de script para o ativo “habilitado” placa de rede. Em seguida, ele usa os “EnableStatic” e “SetGateways” métodos para fazer essas alterações necessárias. Quando eu executar o script na minha rede doméstica (onde eu exigem DHCP), você pode ver onde o script foi alterada com sucesso minhas configurações do adaptador, e eu perdi minha conexão com a Internet.

Tendo provado que a parte estática IP do script funciona, é hora de escrever o roteiro que irá definir o adaptador para DHCP por isso vai detectar automaticamente o IP de rede. Aqui está o script que você pode usar para fazer isso.

Opção ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim errEnablestrComputer = "."Definir objWMIService = GetObject ("winmgmts: " & strComputer & " Root cimv2"Jogo) colNetAdapters = (objWMIService.ExecQuery"Selecione * de Win32_NetworkAdapterConfiguration onde IPEnabled = TRUE") Para cada objNetAdapter em colNetAdapterserrEnable = objNetAdapter.EnableDHCP () NextWScript.Quit


Como você pode ver, esse script é muito mais simples. Ele também usa WMI, mas a única função requerida é “EnableDHCP”. Isto é executado no adaptador de rede atualmente habilitado. Depois de salvar e executar este script, minhas configurações da placa de adaptador mudou de volta para DHCP, e minha conexão com a Internet estava funcionando novamente.
script de configurações de rede mudança
Então, agora que você tem o código para executar as duas ações importantes, a próxima parte deste truque será levar a entrada do usuário para determinar exatamente o IP estático que eles querem. Para reativar o DHCP, você pode exigir que o usuário digite a palavra “AUTO” para detectar automaticamente o IP.
Aqui está o que este novo roteiro completo incorporando os dois scripts acima parece.

Opção ExplicitOn Error Resume NextDim objWMIServiceDim objNetAdapterDim strComputerDim arrIPAddressDim arrSubnetMaskDim arrGatewayDim colNetAdaptersDim errEnableStaticDim errGatewaysDim strInputDim errFailederrFailed = 0strInput = InputBox ("Digite endereço IP estático ou AUTO") Se = strInput "AUTO" ThenstrComputer = "."Definir objWMIService = GetObject ("winmgmts: " & strComputer & " Root cimv2"Jogo) colNetAdapters = (objWMIService.ExecQuery"Selecione * de Win32_NetworkAdapterConfiguration onde IPEnabled = TRUE") Para cada objNetAdapter em colNetAdapterserrEnable = objNetAdapter.EnableDHCP () If Not errEnable = 0 ThenWScript.Echo "Falha configuração DHCP."errFailed = 1End IfNextElsestrComputer = "."arrIPAddress = Array (strInput) arrSubnetMask = Array ("255.255.255.0") ArrGateway = Array ("192.168.1.1") Definir objWMIService = GetObject ("winmgmts: " & strComputer & " Root cimv2"Jogo) colNetAdapters = (objWMIService.ExecQuery"Selecione * de Win32_NetworkAdapterConfiguration onde IPEnabled = TRUE") Para cada objNetAdapter em colNetAdapterserrEnableStatic = objNetAdapter.EnableStatic (arrIPAddress, arrSubnetMask) If Not errEnableStatic = 0 ThenWScript.Echo "Fracasso atribuição de IP / Sub-rede."errFailed = 1End IferrGateways = objNetAdapter.SetGateways (arrGateway) If Not errGateways = 0 ThenWScript.Echo "Fracasso atribuindo Gateway."errFailed = 1End IfNextEnd IFIF errFailed = 0 ThenWScript.Echo "Configurações de IP modificado com sucesso."End IfWScript.Quit

Este script usa a função InputBox para obter tanto o IP estático ou o comando “AUTO” do usuário.
script de configurações de rede mudança

Se algo diferente de “AUTO” é digitado no campo, que será usado como a cadeia de IP estático na seção de código que usa o WMI para definir as configurações de IP estático para o adaptador de rede. Há também uma seleção para a confirmação “0”, dizendo que tudo correu bem.

script para alterar as configurações de rede

Verificando minhas configurações da placa de rede depois de executar o script, eu confirmou que o script de fato fazer as alterações de configuração de IP estáticos.
script para alterar as configurações de rede
Agora, para testar o script AUTO. Digitando AUTO satisfaz a primeira condição na instrução “se” a verificação de AUTO. Este executa o script alternativo que permite DHCP.

script para alterar as configurações de rede

Depois de executar esse, eu fui em minhas configurações do adaptador e com certeza, foi um retrocesso para obter um endereço IP automaticamente.
script para alterar rede
Embora possa ser uma tarefa simples o suficiente para entrar em suas configurações de placa de rede e mudar para estático ou DHCP, se você tem que fazê-lo realmente, muitas vezes pode tornar-se uma dor real. Você poderia fazê-lo a partir de uma linha de comando usando “netsh”, mas, novamente, é preciso lembrar a sintaxe do comando.

Usando o script acima permite que você construa um utilitário rápido e fácil que você pode usar a qualquer momento para mudar as configurações de rede em tempo real.

Pense que você pode dar a este Windows Script uma tentativa? Quaisquer outras idéias para ajustá-lo e torná-lo ainda melhor? Compartilhe seus pensamentos e sugestões na seção de comentários abaixo.


Artigos relacionados