C# では、このプロパティが現在のセッションが RDP のセッションであるかどうかを教えてくれることを知っています (そして動作します)。
System.Windows.Forms.SystemInformation.TerminalServerSession
現在、ログオン/ログオフおよびロック/ロック解除イベントを受信するサービスがあり、開始されているセッションが rdp かローカルかをこのサービスに伝える方法が必要です。
問題:サービスはSYSTEMユーザーとして実行され、上記のプロパティは常にfalseを返します(SYSTEMは常にローカル接続ユーザーと見なされるためだと思います)
レジストリで揮発性環境サブキーを検索して、RDP セッション名を識別するサブキーがあるかどうかを確認しようとしました。これはロック/ロック解除ハンドラーで機能しますが、ログオン ハンドラーではサブキーがまだ存在しません (サブキーログイン完了後に作成されます)。
この問題を回避する方法について何か考えはありますか?
限られた時間だけキーの作成を待つことはできますが、「ぎこちない」方法でそれを行いたいと思います。