如何在Windows下查询用户的会话ID?

时间:2012-12-25 23:20:58

标签: windows winapi visual-c++ sessionid winlogon

如果有两个名为A和B的用户登录到计算机,我们可以使用cmd.exe中的命令“query session”来获取每个用户名的所有会话ID。

我的问题如下:

1,如何通过API(用户模式或内核模式)查询给定用户名的会话ID?

2,如何通过API(用户模式或内核模式)查询给定会话ID的用户名?

提前致谢!

1 个答案:

答案 0 :(得分:3)

您可以使用Remote Desktop Services API

  

1,如何通过API查询给定用户名的会话ID   (用户模式或内核模式)?

只需使用WTSEnumerateSessions获取所有会话,迭代它们,使用WTSQuerySessionInformation获取用户名并检查其是否匹配。

或者,如果您为该用户an access token,则可以使用GetTokenInformation为其检索会话ID。

  

2,如何通过API查询给定会话ID的用户名   (用户模式或内核模式)?

正如您在上一个答案中所猜测的那样,您可以使用WTSQuerySessionInformation从会话ID中获取用户名。