Redémarrage des services génériques


21

Actuellement, nous avons configuré un fichier .BAT qui répertorie tous les services pour les démarrer / arrêter, par exemple.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Nous ajoutons constamment de nouveaux services et la liste s'allonge et il est difficile de maintenir le fichier de commandes.

Est-il possible d'utiliser une WILDCARD comme 'SC start SERVICE *' ou quelque chose?


1
Quelle version de Windows?
Endoro

Réponses:


17

Vous pouvez utiliser la wmicsyntaxe générique SQL-ish.

Depuis une cmdconsole:

wmic service where "name like 'SERVICE%'" call startservice

À partir d'un .batscript:

wmic service where "name like 'SERVICE%%'" call startservice

Verbes disponibles incluent startservice, stopservice, pauseservice, resumeserviceet d' autres. Faites wmic service call /?pour plus d'informations.


1
Le langage de requête est appelé WQL, BTW. C'est un sous-ensemble de SQL.
Bob

@Bob - Oh. Tu apprends quelque chose de nouveau chaque jour. :>
rojo

Je voulais juste ajouter une chose. J'ai rencontré une erreur où le nom du service n'a pas été reconnu. Il s'avère qu'un service a un nom de service et un nom d'affichage. Le nom du service doit être utilisé, pas le nom d'affichage. Vous pouvez trouver le nom du service avecsc query
jdramer

13

Facile, via Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service

J'ai voté pour celui-ci car il fonctionne bien plus rapidement que wmic. Sur ma machine, il faut environ 2 millisecondes pour obtenir une liste de services de cette façon. Cela prend environ 13000 millisecondes en utilisant wmic.
arjabbar

comment combiner ces deux commandes en une seule fois?
Raja Anbazhagan

0

si vous voulez une commande sur une ligne,

Vous pouvez utiliser la cmdlet Restart-Service qui est pré-intégrée dans PowerShell.

Pour utiliser Restart-Service, appelez simplement l'applet de commande suivie du nom du service:

Restart-Service mysql57

Pour redémarrer plusieurs services, spécifiez simplement le nom de chaque service, séparés par des virgules:

Restart-Service mysql57,apache

Si vous préférez, ajoutez le paramètre -displayname et spécifiez le nom d'affichage du service (le nom affiché dans le composant logiciel enfichable Services) à la place:

Restart-Service -displayname "Mysql 5.7 server"

Cette cmdlet accepte également les correspondances génériques. Pour redémarrer tous les services commençant par "mysql":

Restart-Service mysql*
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.