ホストされたサービス(svchost.exe)を独自のプロセスで分離する


13

おそらく今では多くのスーパーユーザーが気づいているように、Microsoftはsvchost.exeを使用して、サービスグル​​ープごとに1つのプロセスを持つ単一のプロセスで複数のWindowsサービスをホストします。

Windows 7(およびそれ以降)では、タスクマネージャーで特定のsvchost.exeプロセスを右クリックし、「サービスに移動」を選択して、「内部」で実行されているサービスを表示できます。すべてのWindowsバージョンで、Process Explorerも使用できます。

ただし、これにより、たとえば、特定のサービスがCPUを100%に固定している、または700 MBのメモリを使用していることがわかりません。同じグループ内のサービスを手動で停止し、削除プロセスを使用することもできますが、特に問題が断続的にしか発生しない場合は面倒です。

Microsoftには、このようなサービスをグループ化する正当な理由があると思われます(おそらく、プロセスごとのオーバーヘッドを減らしますか?)が、特定のサービスを独自のsvchost.exeで分離して実行する方法はありますか?

回答:


16

いいえ、適切な方法は次のコマンドを実行することです。

sc configwuauserv type= own

これにより、独自のプロセスでWindows Updateを実行するように構成されます。これを元に戻すには、次を実行します

sc config wuauserv type= share

管理者権限を持つコマンドプロンプトから。これにより、設定値が変更されますtype。タイプが0x20それがグループプロセスであるならば、値が0x10それがそれ自身のプロセスであるなら

Windows 10 Creators Update(バージョン1703、ビルド15063)以降、十分なRAMがある場合Windowsはこれを独自に実行します


1

私が知っている唯一の方法は、レジストリのハッキングによるものです。通常のレジストリデータベース編集の免責事項が適用されます(Windowsのインストールから時空のファブリック全体まで破壊する可能性があります)。

次の例は、Windows Update(wuauserv)サービスを分離します。このサービスは、誤動作して過剰なリソースを使用することがわかっています。この方法は、Windows 7でのみテストされています

  1. regedit.exe(レジストリエディター)を起動し、

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Svchost
    

    このキーには、グループ設定を含む各グループのサブキーと、グループ内のサービスをリストする各グループのREG_MULTI_SZ値が含まれます。

  2. ターゲットサービスの現在のグループのサブキーを調べ(この例netsvcsでは:)、適切な名前と同じ内容の新しいサブキーを作成します。値の種類と内容を必ず確認してください。

  3. 新しいグループにちなんで名付けられたREG_MULTI_SZ値を作成します。これには、サービス名を含む1行のみが含まれます。既存のグループREG_MULTI_SZからサービス名を削除します。

  4. 次に、の下のターゲットサービスサブキーに移動しますHKLM\SYSTEM\CurrentControlSet\services。この例では:

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\wuauserv
    
  5. ImagePath値を編集し、後のグループ名-kを新しいグループ名に変更します。

  6. ターゲットサービスを再起動し(たとえば、タスクマネージャーの[サービス]タブを使用するか、services.mscを使用して)、独自の個別のsvchost.exeプロセスに表示されるはずです。

次回Windows Updateがamokを実行すると、そのリソースの使用はタスクマネージャーですぐに表示され、「プロセスの終了」を使用して強制終了することもできます(ただし、より重要なサービスにはお勧めしません)。

サービスの開始に失敗した場合は、上部の警告を思い出しながら、上記の手順を確認して再試行するか、変更を元に戻します。:-)

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