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?


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.


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

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*
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.