svchostとは何ですか?なぜ複数のインスタンスが実行されていますか?


27

私のデスクトップでは6つのインスタンスが実行されており、おそらく管理しているサーバーでは10のインスタンスが実行されています。これは何であり、システム機能に不可欠ですか?


笑。私はラップトップで91個を実行しています!
Sen Jacob

回答:


16

svchost、WindowsのサービスをホストしますKBを参照してください。Process Explorerを使用すると、特定のプロセス内で実行されているサービスを確認できます。


1
だから、これはLinuxのinetdとほぼ同等ですか?開発者がコードのサーバー部分を気にせずにサービスを作成できるようにする汎用サーバーフレームワーク?
ジェイソンタン

ジェイソンと同じような考え方ですが、明らかにwebbishタイプのタスクのみをサポートするinetdよりも範囲が広いのは明らかです。現金のために、確かに十分に近い...しかし素敵なアナロジー
ロブ・モイア

20

Windowsの実行コンポーネントの多くは、サービスとして実装されています(マシン上のすべてのサービスを参照してくださいControl Panel > Administrative Tools > Services)。これらは、バックグラウンドで実行される特殊なプログラムです。ログインしたユーザーによって起動されるのではなく、オペレーティングシステム自体によって起動されます。

ほとんどのサービスは、スタンドアロンの実行可能ファイル(EXEファイル)ではなく、実行中のプロセスで使用できるライブラリ(DLL)に実装されています。名前が示すように、Svchostまたは「サービスホスト」は、これらのDLLを実行するためのWindowsの標準実行可能ファイルです。svchost.exeファイルは%systemroot%\system32ディレクトリにあります。

svchostのどのインスタンスがどのサービスを実行しているかを知りたい場合は、次のように入力します。

 tasklist /svc /fi "IMAGENAME eq svchost.exe"

コマンドラインコンソール(cmd)で。

スクリーンショットを作成したマシンでは、たとえばsvchostのインスタンスの1つが21の異なるサービスを実行しています。このサービスのグループ化により、Microsoftのドキュメントによると、制御が改善され、デバッグが容易になります

代替テキスト

Svchost.exeグループは、次のレジストリキーで識別されます。

HKEY_LOCAL_MACHINE\Software\Microsoft\WindowsNT\CurrentVersion\Svchost

ヒント(Windows Vista、Windows 7、またはWindows Server 2008を実行している場合):タスクマネージャーを開き、特定のsvchost.exeプロセスを右クリックして、[Go to Service]オプションを選択できます。これにより、[ サービス ]タブが表示され、選択したsvchost.exeプロセスで実行されているすべてのサービスがマークされます。

Microsoftのダウンロードセンターには非常に興味深いドキュメントがあります。

Microsoft Windows Server 2003システムサービスリファレンス

このドキュメントには、Windows Server 2003ファミリのオペレーティングシステムで利用可能なすべてのサービスの概要が含まれています。サービスは表示名のアルファベット順にリストされています。各サービスの説明に続いて、表にサービスに関する重要な情報がリストされます。

すべてのWindowsサービスは、そのすべての詳細とともにリストされます。たとえば、ターミナルサービスサービスの実行可能ファイル名は

 svchost.exe -k termsvcs 

情報に+1の感謝....あなたとあなたの8000ポイント担当者...真剣に、それは持っている素晴らしいリソースです。私は自分がWin CLIに精通していると考えていますが、これについては知りませんでした。ありがとう!
cop1152 09年

7

Svchostは「サービスホスト」の略です。マシン上のほとんどのサービスを実行し続けます。独自の.exeファイルで自身をホストするサービスがいくつかありますが、Windowsのサービスのほとんどはsvchost.exeプロセス内でホストする必要があります。マシン上のサービスは、ネットワーク、RpCサーバー、オーディオ、イベントログなどの重要なものを処理します。

「スタート」->「実行」で「services.msc」と入力して、マシンで実行しているサービスを表示します。あなたが不必要な人と思われる場合は、サービスを停止することができます。

「tasklist / SVC」と入力して、さまざまなsvchost.exeファイルによってホストされているサービスを確認します。


1

svchost.exeプロセスでホストされているすべてのサービスを出力するPowerShellの1ライナーを次に示します。

PS>get-process svchost | % {get-wmiobject win32_service -filter "processid=$($_.id)"} | format-table processid,name,displayname,state,status -auto

processid name          displayname                               state   status
--------- ----          -----------                               -----   ------
      316 HTTPFilter    HTTP SSL                                  Running OK
     1328 DcomLaunch    DCOM Server Process Launcher              Running OK
     1328 TermService   Terminal Services                         Running OK
     1392 RpcSs         Remote Procedure Call (RPC)               Running OK
     1528 AudioSrv      Windows Audio                             Running OK
     1528 BITS          Background Intelligent Transfer Service   Running OK
     1528 Browser       Computer Browser                          Running OK

ワンライナーの短いバージョンは次のようになります。

gps svchost | % {gwmi win32_service -f "processid=$($_.id)"} | ft proc*,name,disp*,stat* -auto

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.