web-dev-qa-db-ja.com

コマンドプロンプトから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と入力すると、さらにヘルプが表示されます。

しかし、それは私に次のような出力を与えません

「サービス名」=実行中/無効/停止

この形式で出力するコマンドはありますか?

5
vikas

表示名ではなくサービス名を使用する

sc query iisadmin

17
jonathan warren

したがって、Powershellを使用できます。

Get-Service -name 'IIS Admin Service'

9
vigilem

優れたCygwin bashを使用する場合は、次のように簡単に記述できます。

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

ここでの秘訣は、適切なgrepを使用可能にすることです。これにより、この方法でコマンドの真/偽(成功)ステータスをキャッチできます。ここに -qはサイレント、-oは、完全一致を返すためのものであり、おそらく省略できます。そして、はい、あなたはあなたのPATHにあなたの「sc.exe」を置く必要があります。

0
not2qubit