J'ai un script batch qui ressemble à ceci :
sc stop myservice
sc start myservice
il renvoie une erreur car sc ne attend pas que le service soit arrêté. Comment puis-je redémarrer un service avec un script ?
J'ai un script batch qui ressemble à ceci :
sc stop myservice
sc start myservice
il renvoie une erreur car sc ne attend pas que le service soit arrêté. Comment puis-je redémarrer un service avec un script ?
Si vous souhaitez redémarrer un service qui a échoué, vous n'avez pas besoin d'exécuter un script. Dans la console MMC des services, faites un clic droit sur un service, sélectionnez les propriétés, cliquez sur l'onglet récupération. Vous pouvez ici définir les actions à prendre si le service s'arrête. Il y a beaucoup de flexibilité disponible. Vous aurez besoin d'un script si vous essayez d'arrêter le service, de faire quelque chose, puis de démarrer le script, commencez le fichier batch avec net stop "myserviceshortname"
et terminez avec net start "myserviceshortname"
En vbscipt il y a un peu plus de code pour arrêter un service et ses dépendances:
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
Voici comment démarrer un service et tout ce dont il dépend (ceci devrait être familier)
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
SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.