Se você quiser reiniciar um serviço com falha, não será necessário executar um script. Nos serviços MMC snapin clique direito em um serviço, selecione propriedades, clique na guia de recuperação. Aqui você pode definir quais ações você quer que sejam tomadas caso o serviço seja interrompido. Há muita flexibilidade disponível. Você precisará de um script se estiver tentando interromper o serviço, fazer algo, iniciar o script, começar o arquivo de lote com net stop "myserviceshortname"
e terminar com net start "myserviceshortname"
No vbscipt, é um pouco mais código para parar um serviço e seus dependentes:
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery("Associators of " _
& "{Win32_Service.Name='myservice'} 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='myservice'")
For each objService in colServiceList
errReturn = objService.StopService()
Next
Aqui está começando um serviço e tudo de que ele depende (isso deve ser familiar)
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\" & strComputer & "\root\cimv2")
Set colServiceList = objWMIService.ExecQuery _
("Select * from Win32_Service where Name='Myservice'")
For each objService in colServiceList
errReturn = objService.StartService()
Next
Wscript.Sleep 20000
Set colServiceList = objWMIService.ExecQuery("Associators of " _
& "{Win32_Service.Name='myservice'} Where " _
& "AssocClass=Win32_DependentService " & "Role=Dependent" )
For each objService in colServiceList
objService.StartService()
Next