【问题标题】:How to find the Remote Deskop SessionID when using MSTSCLib使用 MSTSCLib 时如何查找远程桌面会话 ID
【发布时间】:2012-06-13 17:01:20
【问题描述】:

我正在尝试编写一个用于我的测试环境的远程桌面客户端。

目标是首次登录计算机(新虚拟机),让用户配置文件和第一次登录期间发生的所有事情发生,然后注销。

我能够使用 MSTSCLib/AxMsRdpClient6NotSafeForScripting 接口创建会话并以用户身份登录到计算机。

现在我想使用 WTSLogoffSession 函数将用户从计算机上注销(不仅仅是断开连接)。但是这个函数需要 Session ID,我不知道如何为 RdpClient 接口中运行的当前会话找到它。

您在哪里/如何在您创建的 RDP 会话中找到该会话的会话 ID?看起来这应该是一个属性或在某个地方很容易找到的东西,但我在任何地方都找到了它。

当给出一个简单的解决方案时,我假设我会打自己的头,但到目前为止它一直在避开我。

谢谢

【问题讨论】:

    标签: windows api remote-desktop rdp mstsc


    【解决方案1】:

    我认为不可能从 RDP 控制接口获取会话 ID(我已经尝试过并且希望被证明是错误的!)。您最好的选择可能是使用WTSEnumerateSessionsWTSQuerySessionInformation(使用WTSInfoClass = WTSSessionInfo 从WTSINFO structure 获取登录时间)或使用像Cassia 这样的包装库(如果您正在使用 .NET 语言并且不想处理 P/Invokes)。

    【讨论】:

    • 我拒绝接受这一点,因为和你一样,我希望你会被证明是错误的。看起来我们都很失望。
    • 是的...:/我猜MS将会话ID视为与客户端无关的服务器端实现细节。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-06-02
    • 1970-01-01
    • 2022-08-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-05
    • 2011-07-28
    相关资源
    最近更新 更多