scコマンドを使用することにより、サービスの一覧を表示することができます。
以下にscコマンドを使用してサービス一覧を表示する実行例を記します。
(本資料はWindows7で動作確認を行いました。)
scコマンドを引数なしで実行すると以下の様なメッセージが出力されます。
C:\Users\sakura>sc
説明:
SC はサービス コントロール マネージャーやサービスと通信するために使用
するコマンド ライン プログラムです。
使用法:
sc <サーバー> [コマンド] [サービス名] <オプション1> <オプション2>...
オプションの <サーバー> は "\\サーバー名" の形式です。
「sc [コマンド]」と入力すると詳細なヘルプが表示されます。
コマンド一覧:
query-----------サービスの状態を照会したりサービスの種類ごと
に状態を列挙したりします。
queryex---------拡張されたサービスの状態を照会したりサービス
の種類ごとに状態を列挙したりします。
<snip>
上記の出力を見ると、sc queryでサービス一覧を確認することができることがわかります。
また、以下の出力を見ると、typeとstateを組み合わせることにより、サービス一覧が表示できることがわかります。
サービスのみの表示(ドライバは対象としない)の場合はtypeの既定値はserviceとなっているので、typeは省略します。
QUERY と QUERYEX のオプション:
クエリ コマンドにサービス名が続く場合、サービスの状態が戻されます。
この場合、それ以上のオプションは適用されません。クエリ コマンドに
オプションがない場合やまたは以下に一覧に表示されているオプションが
続く場合は、サービスが列挙されます。
type= 列挙するサービスの種類 (driver、service、all)
(既定 = service)
state= 列挙するサービスの状態 (inactive、all)
(既定 = active)
bufsize= 列挙バッファーのサイズ (バイト)
(既定 = 4096)
ri= 列挙の開始を指定するための再開インデックス番号
(既定 = 0)
group= 列挙するサービス グループ
(既定 = all groups)
構文の例
sc query - アクティブなサービス ドライバーの状態を列挙します
sc query eventlog - イベントログ サービスの状態を表示します
sc queryex eventlog - イベントログ サービスの拡張状態を表示します
sc query type= driver - アクティブなドライバーのみ列挙します
sc query type= service - Win32 サービスのみ列挙します
sc query state= all - サービスとドライバーをすべて列挙します
<snip>
上記でヘルプ(使用方法)を確認したので、scコマンドでサービス一覧を表示してみます。
以下のコマンドでサービス一覧が表示されます。
(state=の後に半角スペースを入れないと動作しませんので注意してください。)
sc query state= all
実際に上記コマンドを実行したときの出力の抜粋です。
C:\Users\sakura>sc query state= all
SERVICE_NAME: AdobeFlashPlayerUpdateSvc
DISPLAY_NAME: Adobe Flash Player Update Service
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: AeLookupSvc
DISPLAY_NAME: Application Experience
TYPE : 20 WIN32_SHARE_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
SERVICE_NAME: ALG
DISPLAY_NAME: Application Layer Gateway Service
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
<snip>
停止中のサービス一覧や動作中のサービス一覧を表示したい場合は以下のようになります。
sc query state= inactive
sc query
サービス名のみ取得したい場合はfindstrを使用すれば簡単にサービス名だけを取得することができます。
構文
sc query state= all | findstr /B SERVICE_NAME
実際に実行したときの出力です。
C:\Users\sakura>sc query state= all | findstr /B SERVICE_NAME SERVICE_NAME: AdobeFlashPlayerUpdateSvc SERVICE_NAME: AeLookupSvc SERVICE_NAME: ALG SERVICE_NAME: AppIDSvc SERVICE_NAME: Appinfo SERVICE_NAME: AudioEndpointBuilder SERVICE_NAME: AudioSrv SERVICE_NAME: AxInstSV SERVICE_NAME: BDESVC <snip>
findstrコマンドについては、以下リンクの記事を参照してください。