サービスホストプロセス(svchost.exe)とは何ですか。
タスクマネージャを使って閲覧したことがあれば、なぜそれほど多くのサービスホストプロセスが実行されているのか疑問に思われるかもしれません。あなたはそれらを殺すことはできません、そしてあなたは確かにそれらを始めなかったのです。だから、彼らは何ですか?
サービスホストプロセスは、DLLファイルからサービスをロードするためのシェルとして機能します。サービスは関連するグループにまとめられ、各グループはサービスホストプロセスの異なるインスタンス内で実行されます。そうすれば、あるインスタンスの問題が他のインスタンスに影響を与えることはありません。このプロセスは、あなたが実行することを防ぐことができないことをWindowsの重要な部分です.
この記事は、dwm.exe、ctfmon.exe、mDNSResponder.exe、conhost.exe、rundll32.exe、Adobe_Updater.exeなど、タスクマネージャで見られるさまざまなプロセスを説明した継続的な記事の一部です。それらのサービスが何であるかわからないのですか?読み始めるほうがよい!
サービスホストプロセスとは?
Microsoftによると、これが答えだ。
Svchost.exeは、ダイナミックリンクライブラリから実行されるサービスの一般的なホストプロセス名です。.
しかし、それは本当に私たちには役に立ちません。しばらく前に、MicrosoftはWindowsの内部機能(EXEファイルから実行される)に頼ることから代わりにDLLファイルを使用することにWindows機能の多くを変え始めました。プログラミングの観点からすると、これによってコードはより再利用可能になり、間違いなく最新の状態に保つことが容易になります。問題は、実行可能ファイルと同じ方法でWindowsからDLLファイルを直接起動できないことです。代わりに、実行可能ファイルからロードされるシェルがこれらのDLLサービスをホストするために使用されます。そして、サービスホストプロセス(svchost.exe)が生まれました。.
なぜ多くのサービスホストプロセスが実行されているのか?
コントロールパネルの[サービス]セクションを見たことがあれば、Windowsには多くのサービスが必要であることに気付いたことでしょう。すべてのサービスが1つのサービスホストプロセスの下で実行されていた場合、1つのサービスで障害が発生すると、すべてのWindowsがダウンする可能性があります。代わりに、それらは分離されています.
サービスはすべてある程度関連のある論理グループに編成され、各グループをホストするために単一のService Hostインスタンスが作成されます。たとえば、1つのサービスホストプロセスがファイアウォールに関連する3つのサービスを実行します。別のサービスホストプロセスが、ユーザーインターフェイスに関連するすべてのサービスを実行する可能性があります。たとえば、次の図では、1つのサービスホストプロセスが複数の関連ネットワークサービスを実行し、別のプロセスがリモートプロシージャコールに関連するサービスを実行していることがわかります。.
私がこのすべての情報を処理するために必要なことはありますか?
正直なところ、多くはありません。 Windows XP(および以前のバージョン)の頃は、PCのリソースがはるかに限られていてオペレーティングシステムがそれほど微調整されていなかったときは、Windowsが不要なサービスを実行しないようにすることをお勧めします。最近では、サービスを無効にすることはもうお勧めできません。最近のPCはメモリと高性能プロセッサを搭載している傾向があります。それに加えて、最近のバージョンでWindowsサービスが処理される方法(および実行されるサービス)が合理化され、不要と思われるサービスを排除してもそれ以上の影響はないという事実に加えて.
それでも、Service Hostの特定のインスタンス(または関連するサービス)が、CPUやRAMの過剰な過剰使用などの問題を引き起こしていることに気付いた場合は、関連する特定のサービスをチェックインすることができます。それは少なくともあなたにどこでトラブルシューティングを始めるべきかの考えを与えるかもしれません。 Service Hostの特定のインスタンスによってどのサービスがホストされているかを正確に確認する方法はいくつかあります。あなたはタスクマネージャ内のものやプロセスエクスプローラという名前の素晴らしいサードパーティ製のアプリを使って事を調べることができます.
タスクマネージャで関連サービスをチェックする
Windows 8または10を使用している場合、プロセスマネージャの[プロセス]タブにプロセスのフルネームが表示されます。プロセスが複数のサービスのホストとして機能する場合は、単にプロセスを拡張することでそれらのサービスを確認できます。これにより、どのサービスがサービスホストプロセスの各インスタンスに属しているかを簡単に識別できます。.
個々のサービスを右クリックしてサービスを停止したり、「サービス」コントロールパネルアプリケーションで表示したり、オンラインでサービスに関する情報を検索したりすることもできます。.
Windows 7を使用している場合は、状況が少し異なります。 Windows 7のタスクマネージャは、同じ方法でプロセスをグループ化することも、通常のプロセス名を表示することもしませんでした - 実行中の「svchost.exe」のすべてのインスタンスを表示するだけでした。 「svchost.exe」の特定のインスタンスに関連するサービスを特定するには、少し検討する必要がありました。
Windows 7のタスクマネージャの[プロセス]タブで、特定の[svchost.exe]プロセスを右クリックし、[サービスに移動]オプションを選択します。.
これにより、その「svchost.exe」プロセスの下で実行されているサービスがすべて選択されている「サービス」タブに移動します。.
「説明」欄に各サービスのフルネームが表示されるので、サービスを実行したくない場合はサービスを無効にするか、問題が発生した理由をトラブルシューティングするかを選択できます。.
Process Explorerを使用した関連サービスの確認
マイクロソフトは、Sysinternalsのラインナップの一環として、プロセスを操作するための優れた高度なツールも提供しています。 Process Explorerをダウンロードして実行するだけです。ポータブルアプリケーションなので、インストールする必要はありません。 Process Explorerはあらゆる種類の高度な機能を提供します - そしてProcess Explorerを理解するためのガイドを読むことを強くお勧めします.
ここでの目的のために、Process Explorerは関連するサービスを「svchost.exe」の各インスタンスの下にグループ化します。それらはファイル名でリストされていますが、そのフルネームも「説明」列に表示されています。また、「svchost.exe」プロセスの上にマウスポインタを置くと、そのプロセスに関連するすべてのサービス(現在実行されていないものも含む)のポップアップが表示されます。.
このプロセスはウイルスになる可能性があります?
プロセス自体は、公式のWindowsコンポーネントです。ウイルスが実際のサービスホストをそれ自身の実行可能ファイルに置き換えた可能性はありますが、ありそうもないです。確認したい場合は、プロセスの基礎となるファイルの場所を確認できます。タスクマネージャで、任意のサービスホストプロセスを右クリックし、「ファイルを開く場所」オプションを選択します。.
ファイルがWindows \ System32フォルダに保存されている場合は、ウイルスに感染していないことはほぼ確実です。.
それでも、もう少し安心したい場合は、お好みのウイルススキャナーを使用していつでもウイルスをスキャンできます。転ばぬ先の杖!