Existe-t-il une commande Windows qui affichera l'état d'un seul service?
Par exemple, je veux savoir si le "service d'administration IIS" est en cours d'exécution ou non. S'il est en cours d'exécution, la commande ouput doit être "en cours d'exécution".
J'ai essayé sc query type= service state= all | find "IIS Admin Service"
qui affiche la sortie:
"DISPLAY_NAME: IIS Service d'administration"
J'ai aussi essayé net start "IIS Admin Service" | find "Running"
qui affiche:
Le service demandé a déjà été démarré.
Plus d'aide est disponible en tapant NET HELPMSG 2182.
Mais cela ne me donne pas une sortie telle que
"nom du service" = en cours/désactivé/arrêté
Y a-t-il une commande qui a sorti dans ce format?
Utilisez le nom du service et non le nom d'affichage
sc query iisadmin
Vous pouvez utiliser Powershell ainsi:
Get-Service -name 'IIS Admin Service'
Si vous êtes prêt à utiliser l'excellent Cygwin
bash, vous pouvez simplement écrire:
sc query "Bonjour Service" |grep -qo RUNNING && echo "Bonjour is ok!" || echo "Apple Bonjour Service not running"
L'astuce consiste à disposer d'un grep
approprié, de sorte que de cette manière, vous puissiez attraper le statut vrai/faux (succès) de la commande. Ici -q
est pour silencieux et -o
sert uniquement à renvoyer la correspondance exacte et peut probablement être omis. Et oui, vous devez mettre votre "sc.exe" dans votre CHEMIN.