2012-03-06 58 views
15

我正在寻找一种工具来了解本地网络上的给定计算机是否正在被用户远程访问,并且理想情况下我想知道该用户是谁。在我的公司,我们共享虚拟机,并且我们不得不询问团队中的成员是否使用任何远程计算机。我想要有某种仪表盘可以告诉我正在使用哪台电脑,以及哪台电脑是免费的。在给定的计算机上查看活动的远程桌面连接

我很高兴能够使用任何类型的商业解决方案,这需要在每台需要监控的机器上安装服务或类似的东西。

回答

25

如果你从Windows客户端查询下变得容易加入到同一个域中要查询的系统,并且可能需要超出标准的域用户的某些权利。如果您遇到身份验证/权限问题,那将是我要检查的第一件事。

至少在Windows XP中有一个名为“qwinsta”的工具。更高版本的Windows同时具有qwinsta和“查询会话”。

qwinsta /server:computer01 
SESSIONNAME  USERNAME     ID STATE TYPE  DEVICE 
console          0 Conn wdcon 
rdp-tcp         65536 Listen rdpwd 
        administrator    2 Disc rdpwd 

显示用户“管理员”登录但断开连接。由于在此示例中,computer01是具有默认“管理”RDP许可证的Windows Server 2003系统,因此有第二个会话正在侦听某人连接。

运行相同的命令连接到之前断开的会话后再次看起来是这样的:

SESSIONNAME  USERNAME     ID STATE TYPE  DEVICE 
[unchanged output removed] 
rdp-tcp#25  administrator    2 Active rdpwd 

这足以回答“是目前有人通过RDP活跃”,如果你使用独立的用户名,它也应该回答“谁”。如果你全部使用“testuser”或者“administrator”或者其他的东西,你可能想知道“来自哪个客户端”的答案,而上面没有给出答案。

以上提供了一个快速的基本答案,无需额外的工具。有关更多详细信息,您可以查看cassia libraryPSTerminalServices(建立在决明子上)。有关更多详细信息,请参阅this question中的部分答案。

我首先想到的是使用Sysinternals工具,如PsLoggedOnLogonSessions。然后我找到了参考this blog post from 2003中以前未知的qwinsta和rwinsta工具。

+0

非常感谢所有的信息! – 2012-03-06 16:02:45