C# 如何获取Windows会话列表?
我正在设法获取Windows会话列表?我需要与任务管理器中“用户”选项卡上显示的信息相同的信息。我需要知道用户是否处于活动状态,以及是否登录到远程桌面会话C# 如何获取Windows会话列表?,c#,windows,C#,Windows,我正在设法获取Windows会话列表?我需要与任务管理器中“用户”选项卡上显示的信息相同的信息。我需要知道用户是否处于活动状态,以及是否登录到远程桌面会话 您知道如何使用C/Windows XP Pro实现这一点吗?我相信您需要使用p/Invoke来检索此信息 相关API记录在中 作为起点,您可以通过运行命令获得登录用户的列表 qwinsta 从命令提示中 这将产生如下输出: C:\WINDOWS\system32>qwinsta SESSIONNAME USERNAME
您知道如何使用C/Windows XP Pro实现这一点吗?我相信您需要使用p/Invoke来检索此信息
相关API记录在中 作为起点,您可以通过运行命令获得登录用户的列表
qwinsta
从命令提示中
这将产生如下输出:
C:\WINDOWS\system32>qwinsta
SESSIONNAME USERNAME ID STATE TYPE DEVICE
>console me 0 Active wdcon
rdp-tcp 65536 Listen rdpwd
并将列出所有远程会话。通过p/Invoke使用。您还需要在枚举后进行清理。另一种方法是使用Sysinternals中的Logonsessions实用程序:
您不需要使用Pinvoke。WMI做到了这一点,而且做得很好:从根\cimv2命名空间中的Win32_进程中选择名称、会话ID。而且,它可以从远程机器调用。更简单。在select中添加where子句以微调返回的内容。这不会返回与用户选项卡上任务管理器上相同的信息。它返回会话id的整数标识符,而不是用于创建进程的帐户的用户名或SID。