1

ログインしているWindowsユーザーに基づいてさまざまなアクションを実行するWindowsサービスを構築しています。1人のユーザーの下にサービスをインストールし、起動するように設定すると、ログインするユーザーごとに個別のインスタンスが実行されます。 、現在複数のユーザーがログインしている場合でも、実行を継続しますか?

これは私が望む行動ですが、それが不可能な場合は、別のことを計画する必要があります。

そして、一般的に、各ユーザーのログインセッションは、独自の独立した環境のようですか?つまり、名前付きパイプを介してサービスと対話するドライバーがインストールされている場合、現在ログインしているユーザーのドライバーから送信されたパイプメッセージは、他のログインユーザーの下で実行されている他のサービスインスタンスによっても受信されます(上で尋ねたように、それらは別々のインスタンスを実行しますか?それとも、独自のドライバー/カーネルインスタンスを使用して環境を完全に分離していますか?

4

2 に答える 2

3

前述のとおり、Windows サービスには 1 つのインスタンスがあります。デフォルトでは、特定のユーザーとしてではなく、ローカル システム アカウントとして実行されます (また、個々のユーザーの環境などにはアクセスできません)。資格情報に関して、現在ログインしているユーザーからは何も継承しません。サービスの特定のユーザー資格情報を (たとえば、サービス コントロール マネージャーを介して) 設定して、任意のユーザーとしてサービスの 1 つのインスタンスを実行することができます。しかし、あなたは1つしか得られません。

于 2010-02-10T20:22:01.793 に答える
1

少なくともXPの時点では、サービスは1つのインスタンスしか持つことができませんでした。もちろん、特権サービスは他のユーザーと同じようにプロセスを作成できますが、正式にはサービスではありません。

于 2010-02-10T19:05:20.710 に答える