Riavvio dei servizi jolly


21

Attualmente, abbiamo installato un file .BAT che elenca tutti i servizi per avviarli / arrestarli, ad es.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Aggiungiamo sempre nuovi servizi e l'elenco cresce ed è difficile mantenere il file batch.

È possibile utilizzare un WILDCARD come 'SC start SERVICE *' o qualcosa del genere?


1
Quale versione di Windows?
Endoro,

Risposte:


17

È possibile utilizzare la wmicsintassi jolly SQL-ish.

Da una cmdconsole:

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

Da una .batsceneggiatura:

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

Verbi disponibili includono startservice, stopservice, pauseservice, resumeservice, e altri. Fare wmic service call /?per maggiori informazioni.


1
Il linguaggio delle query si chiama WQL, BTW. È un sottoinsieme di SQL.
Bob,

@Bob - Oh. Impara qualcosa di nuovo ogni giorno. :>
rojo,

Volevo solo aggiungere un'altra cosa. Ho riscontrato un errore in cui il nome del servizio non è stato riconosciuto. Si scopre che un servizio ha un nome di servizio e un nome visualizzato. È necessario utilizzare il nome del servizio, non il nome visualizzato. Puoi trovare il nome del servizio consc query
jdramer

13

Facile, tramite Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service

Ho votato a favore di questo perché funziona in MODO più veloce di Wmic. Sulla mia macchina ci vogliono circa 2 millisecondi per ottenere un elenco di servizi in questo modo. Ci vogliono circa 13000 millisecondi usando wmic.
Arjabbar,

come posso combinare questi due comandi in una volta sola?
Raja Anbazhagan,

0

se vuoi un comando su una riga,

È possibile utilizzare il cmdlet Restart-Service preinstallato in PowerShell.

Per utilizzare il servizio di riavvio è sufficiente chiamare il cmdlet seguito dal nome del servizio:

Restart-Service mysql57

Per riavviare più servizi basta specificare il nome di ciascun servizio, separato da virgole:

Restart-Service mysql57,apache

Se preferisci, aggiungi il parametro -displayname e specifica il nome visualizzato del servizio (il nome mostrato nello snap-in Servizi) invece:

Restart-Service -displayname "Mysql 5.7 server"

Questo cmdlet accetta anche la corrispondenza con caratteri jolly. Per riavviare tutti i servizi che iniziano con "mysql":

Restart-Service mysql*
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.