Script per il cambio DNS su tutte le LAN


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

Script per il cambio DNS su tutte le LAN ultima modifica: 2007-01-25T00:00:00+00:00 da Enrico

Related Posts

3 Comments.

  1. [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

  2. 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…

    ;-)

  3. 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