Есть ли какая-нибудь команда 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.