' Check current name server settings and update as necessary
' ---------------------------------------------------------------
' From the book "DNS on Windows Server 2003"
' By Cricket Liu, Matt Larson & Robbie Allen
' Publisher: O'Reilly and Associates
' ISBN: 0-596-00562-8
' Book web site: http://rallenhome.com/books/dnsonw2k3/toc.html
' ---------------------------------------------------------------
option explicit
on error resume next
Dim arrServers
Dim strUsername, strPassword
Dim dicDNSConfig
' Array of DNS servers to check
arrServers = Array("terminator.movie.edu","fx.movie.edu")
' User and password that can modify the config on the DNS servers
strUsername = "dnsadmin"
strPassword = "dnspwd"
' This dictionary object will contain the key value pairs for all the settings
' that you want to check and configure on the DNS servers
Set dicDNSConfig = CreateObject("Scripting.Dictionary")
dicDNSConfig.Add "AllowUpdate", 1
dicDNSConfig.Add "LooseWildCarding", TRUE
dicDNSConfig.Add "MaxCacheTTL", 900
dicDNSConfig.Add "MaxNegativeCacheTTL", 60
dicDNSConfig.Add "EventLogLevel", 0
dicDNSConfig.Add "StrictFileParsing", TRUE
dicDNSConfig.Add "DisableAutoReverseZones", TRUE
Dim arrDNSConfigKeys
arrDNSConfigKeys = dicDNSConfig.keys
Dim objLocator
Set objLocator = CreateObject("WbemScripting.SWbemLocator")
Dim x, y, boolRestart
For x = LBound(arrServers) to UBound(arrServers)
boolRestart = False
WScript.echo arrServers(x)
Dim objDNS, objDNSServer
Set objDNS = objLocator.ConnectServer(arrServers(x), "root\MicrosoftDNS", _
strUserName, strPassword)
set objDNSServer = objDNS.Get("MicrosoftDNS_Server.Name="".""")
for y = 0 To dicDNSConfig.Count - 1
Dim strKey
strKey = arrDNSConfigKeys(y)
WScript.Echo " Checking " & strKey
if dicDNSConfig.Item(strKey) <> objDNSServer.Properties_.Item(strKey) then
objDNSServer.Properties_.Item(strKey).value = dicDNSConfig(strKey)
objDNSServer.Put_
boolRestart = TRUE
if Err Then
WScript.Echo " Error setting " & strKey & " : " & Err.Description
Wscript.Quit
else
WScript.Echo " " & strKey & " updated"
end if
end if
Next
if boolRestart then
objDNSServer.StopService
if Err Then
WScript.Echo "StopService failed: " & Err.Description
Wscript.Quit
end if
objDNSServer.StartService
if Err Then
WScript.Echo "StartService failed: " & Err.Description
Wscript.Quit
end if
WScript.Echo "Restarted"
end if
WScript.Echo ""
next
|