svchost.exe (サービスホスト) とは

スポンサーリンク

svchost.exe (サービスホスト) とは その名のとおりWindows のサービスをホストする実行ファイルです。Windowsのサービスの実態は DLLファイルですが、DLLファイルは単体で起動することはできません。このように単体で起動することができないサービスを起動させる役割を持つのが svchost.exe です。

ひとつのサービスが1つの svchost.exe プロセスを専有していることもあれば、複数のサービスが1つの svchost.exe プロセスを共有していることもあります。下記のようなイメージです。

各サービスがどのsvchost.exe のプロセスで起動しているかは tasklist コマンドで確認できます。

書式

tasklist /svc /fi “SERVICES eq <サービス名>”
※「サービス名」と「表示名」は異なるので注意してください

例えば W32Time を確認してみると W32Time が1つの svchost.exe プロセスを専有していることがわかります。また、svchost.exe の PID は1092で動いてるこをがわかります。

CMD> tasklist /svc /fi "SERVICES eq W32Time"

イメージ名                     PID サービス
========================= ======== ============================================
svchost.exe                   1092 W32Time

Eventlog はPID 984の svchost.exe プロセス上で動いていることがわかりますが、この svchost.exe プロセスを他の4つのサービスと共有していることがわかります。

CMD> tasklist /svc /fi "SERVICES eq EventLog"

イメージ名                     PID サービス
========================= ======== ============================================
svchost.exe                    984 Dhcp, EventLog, lmhosts, TimeBrokerSvc,
                                   WinHttpAutoProxySvc

タスクマネージャーの「プロセス」タブからも、サービスホストとサービスの関係を確認することができます。
※参考:「タスクマネージャー」の開き方

「サービス」タブで各サービスが起動している svchost.exe のPIDの確認することができます。

以上。

コメント