检测远程 WinXP 机器上的 RDP 会话(不在本地网络或域上)

Detect RDP Session on Remote WinXP machine (not on local network or domain)

我在工作中设置了一台 Win XP 机器作为我们的服务器,以允许 RDP 连接。这使我们所有的员工都可以在需要时从家里访问服务器。由于它不是服务器 OS,因此我们缺少常规服务器应具有的许多终端服务功能。该机器一次只允许一个 RDP 会话(这是一个小的不便,但不是什么大问题)。

令人烦恼的是,没有人知道服务器当前是否正在 RDP 会话中使用,而且我们一直在互相启动。我在网上找到的每个解决方案都假定远程计算机是服务器 OS 或本地 network/domain。我们员工的家用电脑没有连接到办公室网络,我们办公室也没有设置域。

在从家中远程访问服务器之前,有什么方法可以判断服务器是否处于 RDP 会话中?理想情况下,我们将能够检测到哪台家用计算机正在访问服务器。但如果那不可能,那么至少知道 RDP 会话是 运行ning 会非常有帮助。

我们之前使用的是 logmein,它可以告诉我们远程计算机键盘和鼠标是否处于活动状态,并允许与计算机上当前远程 on/physically 的用户聊天。这非常方便,但涉及到登录 logmein 网站并经历半长的连接过程。它也比 RDP 慢得多,分辨率也差得多。日常使用不太方便。

这个post处​​理同样的问题 https://superuser.com/questions/313390/ways-to-check-if-user-is-active-on-remote-machine-before-rdping

但公认的响应是在 cmd 上使用 qwinsta,我认为它仅在服务器 OS 上可用。其他响应包括使用 psexec(我试过使用 psloggedon.exe,但这似乎只适用于同一域中的用户)。另一个建议使用 wmic.exe 命令,但是当我尝试这样做时出现错误:RPC 服务器不可用(我认为这也需要在同一域上 运行)。

所以基本上 - 有什么方法可以从远程计算机而不是本地计算机检查 Win XP 计算机上的活动 rdp 会话 network/domain?

我对开箱即用的解决方案持开放态度,例如在 xp 服务器上为 运行 编写一个简单的应用程序,并告诉远程机器在 RDP 会话中连接的 IP。

按照 Harry Johnston 的建议,我编写了一个应用程序,它可以找到谁连接到端口 3389 上的 xp 机器,并通过 udp 将该信息中继到接收应用程序。现在我们可以在无意中将他们关闭之前检查是否有人连接以及他是谁。谢谢哈利!