Usuário com melhor resposta
Como modificar o IP do WINS via script?

Pergunta
-
Boas pessoal,
Tenho que modificar o ip do wins em 15000 máquinas clientes e estive a pesquisar o que poderia ajudar, para a criação de um script que executasse esta modificação.
Encontrei um exemplo de um .vbs
---------------------------------------------------------------------------------------------------
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")
For Each objNetCard in colNetCards
strPrimaryServer = "192.168.1.100"
strSecondaryServer = "192.168.1.200"
objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer
Next
----------------------------------------------------------------------------------------------------Mas gostava de saber se é mesmo o método mais fácil, se não existe antes um script .BAT que fosse mais fácil de entender?
Este script, basta adicionar por group policie no startup?
Será que me podiam ajudar?
Cumprimentos,
Miguel
Respostas
-
Miguel, fiz um teste aqui e ele funcionou sim, porém você tem que colocar dessa forma aqui:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = false")For Each objNetCard in colNetCards
strPrimaryServer = "10.1.1.150"
strSecondaryServer = ""
objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer
Nexto comando setWinsserver, parece que exige dois servidores, colocando o segundo como vazio, ele só adiciona um
Todas as Respostas
-
Miguel, este o metodo mais eficiente, para o seu caso, já que são 15000 máquinas, basta somente você colocar esse script como script de logon que ele vai mudar em todas as placas derede para os endereços que você especificar como endereço wins
, via bat, você poderia usar o comando netsh porém todas as interfaces de rede teriam que ter o mesmo nome, como por exemplo "conexão de rede local"
-
Caro Laerte,
A minha questão é que quando adiciono o .vbs ao startup, não modifica nada. O script que mostrei era o exemplo que a Microsoft fornece, o que eu tenho é este:
------------------------------------------------------------------------------------------
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")For Each objNetCard in colNetCards
strPrimaryServer = "10.0.0.150"
objNetCard.SetWINSServer strPrimaryServer
Next--------------------------------------------------------------------------------------------
Neste script eu retiro a opção do secondary wins, pois só necessito de um wins e coloco o ip. O script está na pasta startup e quando faço Logoff / Login não altera nada.
Será que estou a fazer algo de errado?
Cumprimentos,
Miguel
-
-
-
Miguel, coloque dessa forma
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = False")For Each objNetCard in colNetCards
strPrimaryServer = "10.0.0.150"
objNetCard.SetWINSServer strPrimaryServer
Next -
Laerte,
O .vbs não está a funcionar, fiz um reboot e mesmo assim não funcionou.
Entretanto utilizei esta linha de comando em .bat e funcionou na minha máquina de testes.
-------------------------------------------------------------
netsh interface ip set wins "Local Area Connection" static 10.177.0.150
-------------------------------------------------------------
Mesmo assim vou testanto se realmente funcionará em todas as máquinas.
Obrigado.
Abraço
Miguel
-
Miguel, fiz um teste aqui e ele funcionou sim, porém você tem que colocar dessa forma aqui:
On Error Resume Next
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")Set colNetCards = objWMIService.ExecQuery _
("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = false")For Each objNetCard in colNetCards
strPrimaryServer = "10.1.1.150"
strSecondaryServer = ""
objNetCard.SetWINSServer strPrimaryServer, strSecondaryServer
Nexto comando setWinsserver, parece que exige dois servidores, colocando o segundo como vazio, ele só adiciona um
-
-