Cum schimbi IP Settings din script

By Andrei Ungureanu - Last updated: Wednesday, October 14, 2009 - Save & Share - 2 Comments

Chiar merge, nu e nevoie sa te duci pana la consola sistemului ca sa-i schimbi IP-ul, sa-l treci pe DHCP sau sa-i schimbi setarile pentru DNS/WINS. Merge din script. Si pentru ca majoritatea scripturilor pe care le folosesc sunt scrise in VBS o sa continui tot asa (pentru moment, ca studiez Powershell si Python).

 

Un exemplu pentru folosirea acestui script ar fi un subnet cu ip-uri puse static si unde trebuie sa schimbi adresa serverului de DNS la toate sistemele. Sau un sistem setat cu IP static pe care vrei sa-l treci pe DHCP. Hai sa vedem si cateva exemple.

Cand pentru numele calculatorului folosim “.” inseamna ca ne conectam la sistemul local. Scriptul urmator trece pe DHCP toate adaptoarele de retea care au TCP/IP activat:

strComputer = "."
set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = 1")

For Each objItem in colItems
    If objItem.DHCPEnabled = False then
      errDHCP = objItem.EnableDHCP()

      errDNS = objItem.SetDNSServerSearchOrder() 
    End If
Next

 

Bun. Acum sa luam cazul in care vrem sa trecem de pe DHCP pe IP fix. Pentru asta folosim metoda EnableStatic care primeste 2 parametri IP Address si Subnet Mask sub forma:

errStaticIP = objItem.EnableStatic(array(“192.168.0.10”),array(”255.255.255.0”))

errDNS = objItem.SetDNSServerSearchOrder(array(“192.168.0.100, 192.168.0.101”)) 

Ce altceva mai putem sa setam? WINS de exemplu:

errWins = objItem.SetWINSServer (array(“192.168.0.100, 192.168.0.101”))

Pe scurt, puteti seta cam orice legat de configuratia TCP/IP prin script. Chiar si combinatii mai ciudate cu IP luat prin DHCP si DNS pus manual. Unul din scripturile facute in ultimul timp (pe genunchi) se conecta la toata sistemele dintr-un anumit subnet si imi dadea informatii despre clientul de DHCP: cand si-a luat IP ultima data, cand expira leaseul, de la ce server si-a luat IP, etc.

Concluzie: daca trebuie sa treceti o retea intreaga pe DHCP nu e nevoie sa vizitati fiecare calculator in parte. Merge si remote.

Posted in Scripting • Tags: Top Of Page

2 Responses to “Cum schimbi IP Settings din script”

Comment from Tibi
Time November 26, 2009 at 11:38 pm

Parametrii de tip adresa de IP folositi in metoda EnableStatic, SetDNSServerSearchOrder si SetWINSServer fiind de tip array, folosirea corecta ar fi :

errStaticIP = objItem.EnableStatic(array(“192.168.0.10”),array(”255.255.255.0”))

errDNS = objItem.SetDNSServerSearchOrder(array(“192.168.0.100”),array(”192.168.0.101”))

Comment from Andrei Ungureanu
Time November 27, 2009 at 2:31 am

Am lasat exemplul asa tocmai ca scriptul sa poata fi inteles mai bine dar uite ca am gresit. Metoda SetDNSServerSearchOrder accepta ca parametru un singur array. Valorile serverelor DNS trebuie specificate in primul array. In exemplul pe care l-ai aratat tu, al doilea array e ignorat.
Am facut modificarile si in articol.
Multumesc de comentariu.

Write a comment