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 回答