41 votes

Comment redémarrer un service Windows à partir d'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 ?

52voto

crb Points 7900

L'afficheur veut s'assurer que le service est arrêté avant de tenter de le redémarrer. Vous pouvez utiliser une boucle sur la sortie de "sc query" en faisant quelque chose comme ceci :

:stop
sc stop myservice

rem provoquer un temps de pause d'environ 10 secondes avant de vérifier l'état du service
ping 127.0.0.1 -n 10 -w 1000 > nul

sc query myservice | find /I "STATE" | find "STOPPED"
if errorlevel 1 goto :stop
goto :start

:start
net start | find /i "My Service">nul && goto :start
sc start myservice

30voto

Traphicone Points 64

Peut-être que quelque chose manque, mais j'utilise cela tout le temps :

net stop "myservice"
net start "myservice"

ou plus court :

net stop "myservice" && net start "myservice"

25voto

Greg Hewgill Points 356191

Tout simplement mort avec PowerShell :

PS >Restart-Service MySrvcHere

Mieux encore, en utilisant les noms d'affichage :

PS >Restart-Service -displayname "Nom de mon service ici"

Get-Help Restart-Service pour plus d'informations

6voto

Omer van Kloeten Points 6268

Si c'est simplement pour redémarrer le service, vous pouvez utiliser

Net stop myservice
Net start myservice

Cependant, si vous voulez accéder aux options de sc, vous pouvez utiliser la commande start /wait

start /B /WAIT CMD /C "sc stop myservice"
start /B /WAIT CMD /C "sc start myservice"

Cette technique est une solution plus générale qui peut être appliquée à n'importe quelle commande.

5voto

Fedir RYKHTIK Points 577

Pour avoir un redémarrage calme de certains services qui demandent des confirmations pour être arrêtés (comme le service Serveur, par exemple), vous pouvez ajouter /y à la fin de la commande d'arrêt.

net stop Serveur /y
net start Serveur

Cela serait utile pour l'exécution de scripts automatiques.

SistemesEz.com

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.

Powered by:

X