Reinicialização dos serviços curinga

21

Atualmente, configuramos um arquivo .BAT que lista todos os serviços para iniciá-los / pará-los, por exemplo.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Adicionamos novos serviços o tempo todo e a lista aumenta e é difícil manter o arquivo em lotes.

É possível usar um WILDCARD como 'SC start SERVICE *' ou algo assim?

Edward Tung
fonte
1
Qual versão do Windows?
Endoro

Respostas:

17

Você pode usar uma wmicsintaxe curinga SQL-ish.

Em um cmdconsole:

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

De um .batscript:

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

Verbos disponíveis incluem startservice, stopservice, pauseservice, resumeservice, e outros. Faça wmic service call /?para obter mais informações.

rojo
fonte
1
A linguagem de consulta é chamada WQL, BTW. É um subconjunto de SQL.
24513 Bob
@ Bob - Oh. Você aprende algo novo todos os dias. :>
rojo
Só queria adicionar mais uma coisa. Corri um erro em que o nome do serviço não era reconhecido. Acontece que um serviço tem um Nome de Serviço e um Nome de Exibição. O nome do serviço deve ser usado, não o nome para exibição. Você pode encontrar o nome do serviço comsc query
jdramer
13

Fácil, via Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service
Gotxi
fonte
Votou este porque ele corre MUITO mais rápido que o wmic. Na minha máquina, são necessários cerca de 2 milissegundos para obter uma lista de serviços dessa maneira. Demora cerca de 13000 milissegundos usando o wmic.
Arjabbar
como combinar esses dois comandos de uma só vez?
Raja Anbazhagan
0

se você quiser um comando de uma linha,

Você pode usar o Cmdlet Restart-Service, pré-instalado no PowerShell.

Para usar o Restart-Service, basta chamar o cmdlet seguido pelo nome do serviço:

Restart-Service mysql57

Para reiniciar vários serviços, basta especificar o nome de cada serviço, separado por vírgulas:

Restart-Service mysql57,apache

Se preferir, adicione o parâmetro -displayname e especifique o nome de exibição do serviço (o nome mostrado no snap-in Serviços):

Restart-Service -displayname "Mysql 5.7 server"

Esse cmdlet também aceita correspondência curinga. Para reiniciar todos os serviços começando com "mysql":

Restart-Service mysql*
Raja Anbazhagan
fonte