1

私はWindowsセッションがどのように機能するかをよりよく理解しようとしているので、質問に奇妙な間違いがある場合は、私に知らせてください。

LsaEnumerateLogonSessions()は、システム内のすべてのログオンセッションを取得するために使用します。これで、ログオンを表すLUIDができました。正しく理解していれば、ログオンしたユーザー、またはSYSTEMのようなビルドユーザーを表します。

これで、ユーザーXがプロセスを開始すると、WindowsはそのプロセスにXを表すトークンを与えます。

(Windowsサービスで)LUIDからユーザーのトークンを取得する方法はありますか?プロセスHANDLEから取得できることはわかっていますが、それは私が望んでいることではありません。

4

1 に答える 1

3

を使用LsaGetLogonSessionDataしてセッションIDを取得し、を使用WTSQueryUserTokenしてそこからトークンを取得できます。LocalSystemとして実行する必要がある場合があることに注意してくださいWTSQueryUserToken(これについては、「物理セッションの現在のユーザートークンを取得するにはどうすればよいですか?」を参照してください)。

于 2010-12-26T14:11:19.070 に答える