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

Posted

技术标签:

【中文标题】windows下如何查询用户的session id?【英文标题】:How to query a user's session id under Windows? 【发布时间】:2012-12-25 23:20:58 【问题描述】:

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

我的问题如下:

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

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

提前致谢!

【问题讨论】:

【参考方案1】:

您可以为此使用Remote Desktop Services API。

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

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

或者,如果您有该用户的an access token,您可以使用GetTokenInformation 来检索它的会话ID。

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

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

【讨论】:

以上是关于windows下如何查询用户的session id?的主要内容,如果未能解决你的问题,请参考以下文章

ORACLE 如何查询被锁定表及如何解锁释放session

jsp的问题!做用户登录时,怎样获取这个用户的ID ?然后根据用户ID 查询用户详情。

无法加入查询

ORACLE 如何查询被锁定表及如何解锁释放session

Dexie:如何按日期查询?

关于用户禁用Cookie的解决办法和Session的图片验证码应用