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?

Edward Tung
la source
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.

rojo
la source
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
Gotxi
la source
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*
Raja Anbazhagan
la source