0

テスト環境で使用するリモート デスクトップ クライアントを作成しようとしています。

目標は、コンピューター (新しい仮想マシン) に初めてログオンし、ユーザー プロファイルと最初のログオン時に発生するすべてのことを行ってから、ログオフすることです。

セッションを作成し、MSTSCLib/AxMsRdpClient6NotSafeForScripting インターフェイスを使用してユーザーとしてコンピューターにログオンできます。

ここで、WTSLogoffSession 関数を使用して (切断するだけでなく) ユーザーをコンピューターからログオフしたいと考えています。しかし、この関数にはセッション ID が必要であり、RdpClient インターフェイスで実行されている現在のセッションでそれを見つける方法がわかりません。

作成した RDP セッション内のセッションのセッション ID はどこでどのように見つけますか? これは、プロパティまたはどこかで簡単に見つけられるもののように思えますが、どこでも見つけました。

簡単な解決策が与えられると頭を殴られると思いますが、今のところ避けられています。

ありがとう

4

1 に答える 1

0

RDP 制御インターフェイスからセッション ID をフェッチすることはできないと思います (試してみましたが、間違っていることを証明したいと思います!)。WTSEnumerateSessionsWTSQuerySessionInformation (WTSInfoClass = WTSSessionInfo を使用して WTSINFO 構造体からログオン時間をフェッチする)を使用するか、 Cassiaなどのラッパー ライブラリを使用する (.NET 言語を使用している場合) およびP/Invokes を処理したくない)。

于 2012-06-13T18:21:47.380 に答える