« ゲーデル,エッシャー,バッハ あるいは不思議の環 | Main | 暗号鍵の交換 »

August 17, 2011

svchost.exeが起動するサービス

Windows タスクマネージャで見るとsvchost.exeがリソースを消費してることが良くある。svchost.exeはいくつかのサービスをまとめて起動していることがあるので何がいけないのか分からないことがある。svchost.exeが起動するサービスはレジストリで見られるそうだ。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SvcHost

しかし、起動中のサービスなら以下のコマンドで見られるとのことだ。

C:\Documents and Settings\user>tasklist /?

TASKLIST [/S システム [/U ユーザー名 [/P [パスワード]]]]
         [/M [モジュール] | /SVC | /V] [/FI フィルタ] [/FO 形式] [/NH]

説明:
    このコマンド ライン ツールによってローカルまたはリモートのシステム
    で実行されているアプリケーションと関連付けられたタスクまたはプロセスの
    一覧が表示されます。

パラメータ一覧:
   /S    システム            接続するリモート システムを指定します。

   /U    [ドメイン\]ユーザー コマンドを実行するユーザー コンテキストを
                             指定します。

   /P    [パスワード]        提供されたユーザー コンテキストのパスワードを
                             指定します。省略された場合は、入力を要求します。

   /M    [モジュール]        指定されたパターン名に一致する DLL モジュールを
                             読み込んだすべてのタスクの一覧を表示します。モ
                             ジュール名が指定されない場合、それぞれのタスクに
                             よって読み込まれたすべてのモジュールを表示します。

   /SVC                      それぞれのプロセスのサービスを表示します。

   /V                        詳細な情報を表示するように指定します。


   /FI    フィルタ           フィルタによって指定された、与えられた条件に一致
                             するタスクを表示します。

   /FO    形式               出力の形式を指定します。
                             有効な値: "TABLE", "LIST", "CSV"。

   /NH                       出力するときに、"カラム ヘッダー"を
                             表示しないように指定します。
                             "TABLE" と "CSV" のみ有効です。

   /?                        ヘルプまたは使用法を表示します。

フィルタ:
    フィルタ名     有効な演算子             有効な値
    -----------     ---------------             --------------
    STATUS          eq, ne                      RUNNING | NOT RESPONDING
    IMAGENAME       eq, ne                      イメージ名
    PID             eq, ne, gt, lt, ge, le      PID 値
    SESSION         eq, ne, gt, lt, ge, le      セッション番号
    SESSIONNAME     eq, ne                      セッション名
    CPUTIME         eq, ne, gt, lt, ge, le      hh:mm:ss の形式の
                                                CPU 時間です。
                                                hh は、時間、
                                                mm は 分、ss は、秒です。
    MEMUSAGE        eq, ne, gt, lt, ge, le      メモリ使用 (KB)
    USERNAME        eq, ne                      [ドメイン\]ユーザーの形式の
                                                ユーザー名です。
    SERVICES        eq, ne                      サービス名
    WINDOWTITLE     eq, ne                      ウィンドウ タイトル
    MODULES         eq, ne                      DLL 名

例:
    TASKLIST
    TASKLIST /M
    TASKLIST /V
    TASKLIST /SVC
    TASKLIST /M wbem*
    TASKLIST /S システム /FO LIST
    TASKLIST /S システム /U ドメイン\ユーザー名 /FO CSV /NH
    TASKLIST /S システム /U ユーザー名 /P パスワード /FO TABLE /NH
    TASKLIST /FI "USERNAME ne NT AUTHORITY\SYSTEM" /FI "STATUS eq running"

以下はtasklistコマンドの実行例

C:\Documents and Settings\user>tasklist /fi "imagename eq svchost.exe" /svc > tasklist.log
C:\Documents and Settings\user>type tasklist.log

イメージ名                   PID サービス
========================= ====== =============================================
svchost.exe                 1000 DcomLaunch, TermService
svchost.exe                 1080 RpcSs
svchost.exe                 1200 AudioSrv, BITS, Browser, CryptSvc, Dhcp,
                                 dmserver, ERSvc, EventSystem,
                                 FastUserSwitchingCompatibility, helpsvc,
                                 HidServ, lanmanserver, lanmanworkstation,
                                 Netman, Nla, RasMan, Schedule, seclogon,
                                 SENS, SharedAccess, ShellHWDetection,
                                 srservice, TapiSrv, Themes, TrkWks, w32time,
                                 winmgmt, wscsvc, wuauserv, WZCSVC
svchost.exe                 1396 Dnscache
svchost.exe                 1432 LmHosts, RemoteRegistry, SSDPSRV
svchost.exe                 1700 WebClient
svchost.exe                  700 stisvc

C:\Documents and Settings\user>

Windows タスクマネージャで PIDを見ればどのsvchost.exeで起動しているサービスなのかが分かるので、原因に一歩近づけそうだ。しかし、問題のsvchost.exeで起動しているサービスが分かってもサービス名しか表示されないのでWindows タスクマネージャではサービスの表示名しか表示されないので探せない。

そこでサービスの設定情報を表示するコマンドを使う。

C:\Documents and Settings\user>sc qc
DESCRIPTION:
        Queries the configuration information for a service.
USAGE:
        sc  qc [service name] 

C:\Documents and Settings\user>

以下は sc qc コマンドの実行例

C:\Documents and Settings\user>sc qc ntmssvc
[SC] GetServiceConfig SUCCESS

SERVICE_NAME: ntmssvc
        TYPE               : 20  WIN32_SHARE_PROCESS
        START_TYPE         : 3   DEMAND_START
        ERROR_CONTROL      : 1   NORMAL
        BINARY_PATH_NAME   : C:\WINDOWS\system32\svchost.exe -k netsvcs
        LOAD_ORDER_GROUP   :
        TAG                : 0
        DISPLAY_NAME       : Removable Storage
        DEPENDENCIES       : RpcSs
        SERVICE_START_NAME : LocalSystem
C:\Documents and Settings\user>
お世話になりました
svchost.exeプロセスとは?

|

« ゲーデル,エッシャー,バッハ あるいは不思議の環 | Main | 暗号鍵の交換 »

パソコン・インターネット」カテゴリの記事

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/56088/52496473

Listed below are links to weblogs that reference svchost.exeが起動するサービス:

« ゲーデル,エッシャー,バッハ あるいは不思議の環 | Main | 暗号鍵の交換 »