Windows下如何查询用户的session id?

问题描述 投票:1回答:2

只要电脑上有两个用户,分别名为A和B,登录后,我们可以使用cmd.exe中的 "查询会话 "命令来获取每个用户名的所有会话id。

我的问题如下。

1,如何通过API(用户模式或内核模式)查询某个用户名的session id?

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

先谢谢了!

windows winapi visual-c++ sessionid winlogon
2个回答
4
投票

你可以用 远程桌面服务API 为此。

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

只需使用 WTSEnumerateSessions,遍历它们,得到用户名与 WTSQuerySessionInformation 并检查它是否匹配。

或者,如果你有 令牌 对于该用户,您可以使用 GetTokenInformation 来获取它的会话ID。

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

从前面的回答中你可能会猜到,你可以使用 WTSQuerySessionInformation 从会话ID中获取用户名。

© www.soinside.com 2019 - 2024. All rights reserved.