假设有两个名为A和B的用户登录到计算机上,我们可以使用cmd.exe中的"query session“命令来获取每个用户名的所有会话ids。
我的问题如下:
1、如何通过API (用户态或内核态)查询给定用户名的会话id?
2、如何通过API (用户态或内核态)查询给定会话id的用户名?
提前感谢!
发布于 2012-12-26 07:39:52
您可以使用Remote Desktop Services API来实现这一点。
1,如何通过接口(用户态或内核态)查询给定用户名的会话id?
只需使用WTSEnumerateSessions获取所有会话,遍历它们,使用WTSQuerySessionInformation获取用户名并检查是否匹配。
或者,如果您有该用户的an access token,则可以使用GetTokenInformation来检索该用户的会话ID。
2,如何通过接口(用户态或内核态)查询给定会话id的用户名?
正如您从前面的答案中可能猜到的那样,您可以使用WTSQuerySessionInformation从会话ID中获取用户名。
https://stackoverflow.com/questions/14034666
复制相似问题