How To Restart Windows DNS Service By VbScirpt?

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")
 

Add Feedback