VBS - ändra nätmask och gateway baserat på nuvarande IP
Hej,
Jag håller på med ett nätverksprojekt på jobbet som innebär att enheter ska byta nätmask och gateway.
Har bytt lite manuellt, men känner att det vore skönt att automatisera för att det ska gå lite smidigare och minska risken för fel.
Sedan tidigare så har jag ett script som sätter DNSer på enheterna, det ser ut såhär:
On Error Resume Next
strComputer = "localhost"
'Next line contains the list of preferred DNS
arrNewDNSServerSearchOrder = Array("1.1.1.1","2.2.2.2","3.3.3.3","4.4.4.4")
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
Set colNicConfigs = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled = True")
strOutputMessage = "Trying to modify DNS server settings..."
WScript.Echo strOutputMessage
WshShell.LogEvent 4,strOutputMessage
For Each objNicConfig In colNicConfigs
If objNicConfig.DHCPEnabled = True Then
strOutputMessage = "This computer is DHCP-enabled on the following adapter: " & objNicConfig.Caption & ". Skipping this adapter."
WScript.Echo strOutputMessage
WshShell.LogEvent 4,strOutputMessage
Else
intSetDNSServers = objNicConfig.SetDNSServerSearchOrder(arrNewDNSServerSearchOrder)
If intSetDNSServers = 0 Then
strOutputMessage = "DNS server search order set successfully on the following adapter: " & objNicConfig.Caption & " " & Err.Description
WScript.Echo strOutputMessage
WshShell.LogEvent 4,strOutputMessage
Else
strOutputMessage = "An error ocurred when setting DNS server search order on the following adapter: " & objNicConfig.Caption & " with the following error: " & intSetDNSServers & " " & Err.Description
WScript.Echo strOutputMessage
WshShell.LogEvent 4,strOutputMessage
End If
End If
Next
Scriptet gör precis vad det ska och sätter DNSer på det aktiva kortet. Det här scriptet har jag hittat på nätet, så det är inget jag gjort själv.
Jag skulle vilja kombinera det med ett script som:
Tar reda på nuvarande IP-adress
Sätter gateway till x.y.z.126 där x.y.z är nuvarande nät från IP-adressen
Sätter nätmasken till 255.255.255.0
Sätter DNSer likt ovan
Ger ett meddelande om att det är färdigt samt en omstart av maskinen.
Jag hittade ett script där jag får reda på nätet, precis som jag vill, men jag fattar fasen inte hur jag får dessa parametrar att sätta gateway.
dim NIC1, Nic, StrIP, arrIP
Set NIC1 = GetObject("winmgmts:").InstancesOf("Win32_NetworkAdapterConfiguration")
For Each Nic in NIC1
if Nic.IPEnabled then
StrIP = Nic.IPAddress(i)
arrIP = Split(strIP, ".")
MsgBox "Net: " & arrIP(0) & "." & arrIP(1) & "." & arrIP(2),4160,"Test"
wscript.quit
End if
Next
Är det någon som kan hjälpa mig i rätt riktning?
Jag är helt nybörjare på vbs, och programmering överlag. Har gjort endel batfiler, men inte såhär avancerat.
Tacksam för all hjälp jag kan få!