Problem
Sometimes you need to re-start Windows DNS Service periodically in your Windows 2008/2012/2016/2019 server.
Solution
You can write a .vbs script file and schedule it as Windows task.
'Restart DNS
'-----------------------Stopping DNS----------------------------
Wscript.Echo("Stopping DNS........")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\"
& strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
& "{Win32_Service.Name='DNS'} Where " _
& "AssocClass=Win32_DependentService " & "Role=Antecedent" )
For each objService in colServiceList
objService.StopService()
Next
Wscript.Sleep 20000
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='DNS'")
For each objService in colServiceList
errReturn = objService.StopService()
Next
Wscript.Echo("DNS Stopped")
Wscript.Sleep 20000
'-----------------------Starting DNS----------------------------
Wscript.Echo("Starting DNS........")
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\"
& strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='DNS'")
For each objService in colServiceList
errReturn = objService.StartService()
Next
Wscript.Sleep 20000
Set colServiceList = objWMIService.ExecQuery("Associators of " _
& "{Win32_Service.Name='DNS'} Where " _
& "AssocClass=Win32_DependentService " & "Role=Dependent" )
For each objService in colServiceList
objService.StartService()
Next
Wscript.Echo("DNS Started")
Article ID: 486, Created: January 3, 2020 at 2:06 AM, Modified: February 24, 2021 at 12:41 AM