2012-04-26 27 views

答えて

1

LsaGetLogonSessionDataは、ログオンセッションIDからターミナルサービスセッションIDを返します。したがって、WTSConnectStateでWTSQuerySessionInformationを呼び出すことができます。運があれば、結果はあなたが関係している2つのケースを区別します。

NPLogonSessionから返される前に答えを知る必要がない場合は、おそらくWTSRegisterSessionNotificationを使用して、NPLogonSessionの呼び出しに関連付けられたターミナルサービスセッションに何が起こるのかを見ることができます。

ユーザーが既存のセッションに接続している場合、NPLogonNotifyのターミナルサービスセッションはアイドル状態またはリスニング状態に戻ります。また、NPLogonNotifyへの呼び出しのログオンセッションが閉じられます。ログオンセッションは、LsaEnumerateLogonSessionsを呼び出して列挙できます。

ユーザーが新しいセッションを受信すると、NPLogonNotifyからの呼び出しで同じターミナルサービスセッションが使用されると考えられ、アクティブ状態に移行します。通常は、NPLogonNotifyへの呼び出しからのログオンセッションIDに関連付けられた1つ以上のプロセスも開始されます。プロセスに関連付けられたログオンセッションは、MSDNの用語集の"logon identifier"に記載されているように、TokenStatisticsクエリクラスでGetTokenInformationを使用して判断できます。

ユーザーが管理者であり、UACが有効な場合、NPLogonNotifyには2つの呼び出しがあります.1つは制限付きユーザートークンに関連付けられ、もう1つは昇格ユーザートークンに関連付けられます。これは、ローカルログオンとリモートログオンの両方に当てはまります。

関連する問題