比如说,如果我在某个时间点调用 WTSEnumerateSessions从本地服务应用程序获取当前用户 session ID 的列表。因此,如果稍后我需要知道某个特定用户 session 是否仍处于相同状态,我可以依赖 WTS_SESSION_INFO::SessionId 吗?是独一无二的?如果没有,该怎么做?
最佳答案
Windows 为每个登录 session 提供一个 SID。 MSDN has sample code to look it up对于给定的登录 session ,它保证是唯一且不变的。如果用户注销并再次登录,他将被赋予一个新的登录 SID。
如果同一用户同时在本地登录和远程登录,则每个登录 session 将有不同的登录 SID。这张图片显示了我的意思:
.
(免责声明 - 我从 blog post of mine 偷了它)
您可以使用此命令获取登录 SID。在不编写任何代码的情况下播放假设场景可能很有用。
c:\>whoami /logonid
S-1-5-5-0-329693570
在 Windows Server 2008 上测试。在其他版本上使用 YMMV。
关于c++ - WTSEnumerateSessions API获取的session ID是否唯一?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13079796/