Script per il cambio DNS su tutte le LAN
January 25th, 2007 | by Enrico |Mi è capitato di dover cambiare su 250 computer i DNS delle reti disponibili.
Onde evitare di dover chiamare uno a uno tutti i client ho cercato e trovato il modo per cambiare le chiavi del registro al volo.
Ecco lo script, Enjoy it!
Call Main()
wscript.echo “Fatto”
‘ —————————————————————————————
‘ | Main Sub |
‘ —————————————————————————————
Sub Main()
SetDNSServerSearchOrder()
End Sub
‘ —————————————————————————————
‘ | Change DNS Server Search order |
‘ —————————————————————————————
Sub SetDNSServerSearchOrder()
‘ On Error Resume Next
Err.clear
dim aDNS(1)
aDNS(0) = “208.67.222.222″
aDNS(1) = “208.67.220.200″
‘Set Networking Managing Objects
strComputer = “.”
set objWMIService = GetObject(“winmgmts:” & strComputer & “rootcimv2″)
Set colItems = objWMIService.ExecQuery(“Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = 1″)
For Each objItem in colItems
errDNS = objItem.SetDNSServerSearchOrder()
wscript.sleep 500
errDNS = objItem.SetDNSServerSearchOrder(aDNS)
Next
set objWMIService = Nothing
set colItems = Nothing
If err.number <> 0 Then
dim snum, sdesc
snum = err.number
sdesc = err.description
ErrorHandler snum, sdesc
End If
End Sub
‘ —————————————————————————————
‘ | Error Handler |
‘ —————————————————————————————
Sub ErrorHandler(byVal errorNum, byVal errorDesc)
‘ On Error Resume Next
Err.Clear
theDesc = “Error Number: ” & errornum & ” Error Description: ” & errorDesc
WshShell.LogEvent 1, theDesc
dim objFile, fso2
objFile = “InstallErr.txt”
If fso.FileExists(objFile) Then
Set objFile = fso.OpenTextFile(objFile, 8)
objFile.WriteLine ” -Errore Numero:” & errorNum & ” Error Desc:” & errorDesc
Else
Set objFile = fso.CreateTextFile(objFile, True)
objFile.WriteLine ” -Errore Numero:” & errorNum & ” Error Desc:” & errorDesc
End If
objFile.close
Err.clear
End Sub

2 Responses to “Script per il cambio DNS su tutte le LAN”
By enrico on Jan 25, 2007 | Reply
[b]aDNS(0) = “208.67.222.222″
aDNS(1) = “208.67.220.200″ [/b]
Questi sono i DNS che andranno a sostituirsi a quelli già configurati
By LoSPippolo on Jan 28, 2007 | Reply
Io avrei usato una cosa del tipo:
netsh interface ip set dns name = “Connessione alla rete locale (LAN)” source = static addr = 208.67.222.222
messo nello scritp di login del domino…
;-)
By enrico on Jan 29, 2007 | Reply
si, unico vero difetto è che col netsh devi conoscere il nome della connessione locale
con lo script invece no
mica sempre c’è scritto “Connessione alla rete locale (LAN)” :D