svchost.exeがホストするサービスを決定するものは何ですか?


0

プロセスエクスプローラーでプロセスを表示すると、いくつかのsvchost.exeサブプロセスを持つservices.exeがあります。これらはそれぞれ、1つ以上のサービスをホストします。ただし、単一プロセスでのサービスの選択は完全にランダムに見えます。

プロセスは、ホストするサービスをどのように選択しますか?これはどういうわけか影響を受けますか?

services.mscにこれに関するコントロールが見つかりません。

他のサービスとは別に、いくつかのサービスを独自のプロセスに強制的に設定したいと思います。

回答:


2

レジストリには、サービスのロード方法を制御するデータベースがあります。これは、サービスコントロールマネージャーデータベースです。

サービスコントロールマネージャーはservices.exeを実行します。サービスは、HKLM \ SYSTEM \ CurrentControlSet \ Servicesの下のレジストリで定義されています。Typeサービスのエントリの値は、独自のプロセスでロードされるか、複数のサービスをホストするプロセスでロードされるかを指定します。

SCMがサービスの開始を決定すると、ScStartServiceを呼び出します。ScStartService ImagePathは、サービスのレジストリキーから値を読み取ることにより、サービスのプロセスを実行するファイルの名前を決定します。ImagePath値は、グループの名前が含まれています。次に、Type値を調べます。値0x20は、共有プロセスを示します。

サービスを独自のプロセスで実行する方法に関する質問に答えるには、sc configコマンドを使用します。

例:sc config wuauserv type= own =の後にスペースが必要です。

Technet

ソース


1

services.mscにはコントロールがありませんが、各サービスは、サービスの要件に応じて特定の権限を持つ特定のユーザー/サービスアカウントで開始されます。

サービスコントロールパネルの[ログオン]列には、特定のサービスに使用されているサービスアカウントが表示されます。svchost.exeタスクマネージャーのそれぞれが異なるユーザーアカウントからのものであることに注意してください。

svchost.exe各サービスをホストしているのは、これらのアカウントによって決まります。


技術的にはsvchost.exe、サービスプロパティの[ログオン]タブでサービスがログオンするユーザーを変更できるため、特定のサービスをホストしているものを変更するコントロールがあります。サービスを間違った順序で起動したり、必要な権限なしで起動したりする可能性があるため、変更することはお勧めしません。


そうですか。リスクを負うと仮定すると、まったく新しいサービスユーザーを作成する必要があります。しかし、それはおそらく別のSUの質問に値するでしょう。
user694733

はい。いくつかのプログラムがそれを正確に実行し、ファイルシステムのアクセス許可と組み合わせると、そのサービスのみが機能するフォルダー領域を効果的に提供できるサービスを作成できます。サービスの作成は新しい質問のように聞こえますが、それを詳しく説明する質問がすでにあるのではないかと思います。
木梅
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.