0

私はC#で書かれたWindowsサービスを持っています。このサービスは、多数のMTAスレッドを生成します。これらの各スレッドでは、アウトプロセスCOMクラスがインスタンス化されます。現在のユーザーとして実行するようにサービスを設定しました(適切なログイン資格情報を追加します)。サービスを開始すると、タスクマネージャーから、ユーザーとして実行されているように見えます。サービスがローカルローミングユーザーディレクトリをチェックすると、期待どおりにユーザーディレクトリが返されます。アウトプロセスexeとして実行されているCOMクラスがこのチェックを実行すると、Windows \ System32 \ Config \ systemprofile \ AppData\Roamingにパスが返されます。

誰かがここで何が起こっているのか、さらに具体的には、サービスユーザーとして実行するためにプロセスサーバーから抜け出す方法に光を当てることができますか?タスクマネージャーをチェックインしましたが、タスクマネージャーによると、exeはサービスと同じユーザー(同じセッション)として実行されています。

OSが要因かどうかはわかりませんが、Vista 32(sp2)とWin7 64(sp1)の両方でこれを確認しました。

4

1 に答える 1

1

RunAsを使用して、サーバーを特定のアカウントとして実行することができます。あまり柔軟ではありませんが、ここでやりたいことをしているようです。

于 2011-05-02T17:44:20.120 に答える