1

假设有两个用户,分别是 A 和 B,登录计算机,我们可以在 cmd.exe 中使用命令“查询会话”来获取每个用户名的所有会话 ID。

我的问题如下:

1、如何通过API(用户态或内核态)查询给定用户名的会话id?

2、如何通过API(用户态或内核态)查询给定session id的用户名?

提前致谢!

4

1 回答 1

4

您可以为此使用远程桌面服务 API

1、如何通过API(用户态或内核态)查询给定用户名的会话id?

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

或者,如果您有该用户的访问令牌,您可以使用GetTokenInformation它来检索它的会话 ID。

2、如何通过API(用户态或内核态)查询给定session id的用户名?

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

于 2012-12-25T23:39:51.700 回答