假设有两个用户,分别是 A 和 B,登录计算机,我们可以在 cmd.exe 中使用命令“查询会话”来获取每个用户名的所有会话 ID。
我的问题如下:
1、如何通过API(用户态或内核态)查询给定用户名的会话id?
2、如何通过API(用户态或内核态)查询给定session id的用户名?
提前致谢!
假设有两个用户,分别是 A 和 B,登录计算机,我们可以在 cmd.exe 中使用命令“查询会话”来获取每个用户名的所有会话 ID。
我的问题如下:
1、如何通过API(用户态或内核态)查询给定用户名的会话id?
2、如何通过API(用户态或内核态)查询给定session id的用户名?
提前致谢!
您可以为此使用远程桌面服务 API。
1、如何通过API(用户态或内核态)查询给定用户名的会话id?
只需使用 获取所有会话WTSEnumerateSessions
,遍历它们,获取用户名WTSQuerySessionInformation
并检查它是否匹配。
或者,如果您有该用户的访问令牌,您可以使用GetTokenInformation
它来检索它的会话 ID。
2、如何通过API(用户态或内核态)查询给定session id的用户名?
正如您可能从上一个答案中猜到的那样,您可以使用WTSQuerySessionInformation
从会话 ID 中获取用户名。