如果有两个名为A和B的用户登录到计算机,我们可以使用cmd.exe中的命令“query session”来获取每个用户名的所有会话ID。
我的问题如下:
1,如何通过API(用户模式或内核模式)查询给定用户名的会话ID?
2,如何通过API(用户模式或内核模式)查询给定会话ID的用户名?
提前致谢!
答案 0 :(得分:3)
您可以使用Remote Desktop Services API。
1,如何通过API查询给定用户名的会话ID (用户模式或内核模式)?
只需使用WTSEnumerateSessions
获取所有会话,迭代它们,使用WTSQuerySessionInformation
获取用户名并检查其是否匹配。
或者,如果您为该用户an access token,则可以使用GetTokenInformation
为其检索会话ID。
正如您在上一个答案中所猜测的那样,您可以使用2,如何通过API查询给定会话ID的用户名 (用户模式或内核模式)?
WTSQuerySessionInformation
从会话ID中获取用户名。