Назад | Перейти на главную страницу

Показать статус службы Windows из командной строки

Есть ли какая-нибудь команда Windows, которая покажет статус отдельной службы?

Например, я хочу знать, запущена ли «служба администрирования IIS» или нет. Если он запущен, вывод команды должен быть "запущен".

Я попытался sc query type= service state= all | find "IIS Admin Service" который отображал вывод:

"DISPLAY_NAME: служба администратора IIS"

Я тоже пробовал net start "IIS Admin Service" | find "Running" который отображает:

Запрошенная служба уже запущена.

Дополнительную помощь можно получить, набрав NET HELPMSG 2182.

Но это не дает мне такого вывода, как

"имя службы" = работает / отключено / остановлено

Есть ли команда, которая выводит данные в этом формате?

Используйте имя службы, а не отображаемое имя

sc query iisadmin

Вы можете использовать Powershell таким образом:

Get-Service -name 'IIS Admin Service'

Если вы хотите использовать отличный Cygwin bash, вы можете просто написать:

sc query "Bonjour Service" |grep -qo RUNNING && echo "Bonjour is ok!" || echo "Apple Bonjour Service not running"

Хитрость здесь в том, чтобы правильно grep доступен, так что таким образом вы можете определить истинный / ложный (успешный) статус команды. Вот -q для молчания и -o предназначен для просто возврата точного совпадения и, вероятно, может быть опущен. И да, вам нужно поместить свой "sc.exe" в ваш PATH.