Перезапуск служб подстановки


21

В настоящее время мы настроили файл .BAT, в котором перечислены все службы для их запуска / остановки, например.

SC start SERVICE
SC start SERVICE

SC stop SERVICE
SC stop SERVICE

Мы постоянно добавляем новые сервисы, и их список постоянно растет, и обслуживать командный файл сложно.

Можно ли использовать WILDCARD типа «SC start SERVICE *» или что-то в этом роде?


1
Какая версия windows?
Эндоро

Ответы:


17

Вы можете использовать wmicи подстановочный синтаксис SQL.

Из 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.
Боб

@ Боб - Ой. Я узнаю что-то новое каждый день. :>
Рохо

Просто хотел добавить еще одну вещь. Я столкнулся с ошибкой, когда имя службы не было распознано. Оказывается, у службы есть имя службы и отображаемое имя. Следует использовать имя службы, а не отображаемое имя. Вы можете найти имя сервиса с помощьюsc query
jdramer

13

Легко, с помощью Powershell:

Get-service SERVICE* | stop-service -force

Get-service SERVICE* | start-service

Я проголосовал за этот, потому что он работает намного быстрее, чем wmic. На моей машине для получения списка услуг таким способом требуется около 2 миллисекунд. Это занимает около 13000 миллисекунд с использованием wmic.
arjabbar

как мне объединить эти две команды за один раз?
Раджа Анбажаган

0

если вы хотите команду One Line,

Вы можете использовать командлет Restart-Service , предварительно встроенный в powershell.

Чтобы использовать Restart-Service, просто вызовите командлет с именем службы:

Restart-Service mysql57

Чтобы перезапустить несколько сервисов, просто укажите имя каждого сервиса через запятую:

Restart-Service mysql57,apache

При желании добавьте параметр -displayname и укажите вместо него отображаемое имя службы (имя, отображаемое в оснастке «Службы»):

Restart-Service -displayname "Mysql 5.7 server"

Этот командлет также принимает сопоставление с подстановочными знаками. Чтобы перезапустить все службы, начинающиеся с «mysql»:

Restart-Service mysql*
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.