Перезапуск послуги Wildcard


21

Наразі ми встановили .BAT-файл, який перераховує всі сервіси для запуску / зупинки, наприклад.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Ми постійно додаємо нові сервіси, і список зростає, і важко підтримувати пакетний файл.

Чи можливо використовувати WILDCARD типу "SC start SERVICE *" чи щось таке?


1
Яка версія Windows?
Ендоро

Відповіді:


17

Можна використовувати wmicі синтаксис підстановки SQL-ish.

З cmdконсолі:

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

Зі .batсценарію:

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

Доступні дієслова включають startservice, stopservice, pauseservice, resumeserviceта інші. Зробіть wmic service call /?для отримання додаткової інформації.


1
Мова запиту називається WQL, BTW. Це підмножина SQL.
Боб

@Bob - О. Я щодня вчиш щось нове. :>
rojo

Просто хотів додати ще одну річ. Я зіткнувся з помилкою, коли ім’я служби не було розпізнано. Виявляється, служба має ім'я служби та відображуване ім'я. Слід використовувати ім'я служби, а не відображуване ім'я. Ви можете знайти ім'я служби зsc query
jdramer

13

Легко через Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service

Я підтримав цей, тому що він працює ВЕЧЕ швидше, ніж Wmic. На моїй машині таким чином потрібно отримати список послуг. Використання wmic займає близько 13000 мілісекунд.
arjabbar

як я поєдную ці дві команди в один раз?
Раджа Анбаджаган

0

якщо ви хочете команду "Один рядок",

Ви можете використовувати Cmdlet Restart-Service, який попередньо вбудований у shellhell.

Для використання Restart-Service просто зателефонуйте в командлет, а потім ім'я служби:

Restart-Service mysql57

Щоб перезапустити кілька служб, просто вкажіть назву кожної служби, розділену комами:

Restart-Service mysql57,apache

Якщо ви хочете, додайте параметр -displayname і замість нього вкажіть відображуване ім’я служби (ім'я, показане в оснастці Служб):

Restart-Service -displayname "Mysql 5.7 server"

Цей Cmdlet також приймає відповідність підстановок. Щоб перезапустити всі сервіси, починаючи з "mysql":

Restart-Service mysql*
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.