2008-10-27 62 views
3

我想编写一个应用程序来测试Windows机器是否正确响应RDP(远程桌面) - 即检查机器是否不仅允许连接,而且还正常响应,并未被挂起或以其他方式异常响应。RDP连接/响应性测试

是否有我可以用来做到这一点的库或实用程序?我的搜索结果全部为RDC clients,但我希望有些东西至少可以提供测试API。我最想使用Java或脚本语言来做到这一点,但我愿意提供建议。

+0

你有管理员访问这些机器吗? – Skyl3r 2017-06-29 13:23:28

回答

0

发现这对Experts Exchange

use Net::Telnet(); 
$t = new Net::Telnet (Timeout => 10, Prompt => '', Port >= 3389); 
if($t->open("computer.name.or.ip")) { 
    print "Connect successful\n"; 
} 
else { 
    print "Could not connect\n"; 
} 

当时的想法是尝试连接,如果它不能秒“x”的额度内进行连接,假设它是行不通的。如果您试图查看特定用户的登录是否有效,那么得到一些更复杂的内容,但至少应该让您开始。

注意:正如在评论中指出,最初的解决方案留出了RDP端口,所以我包括在这个...

+0

RDP在端口3389上运行...因此您需要将其添加到您的示例中。 – paxos1977 2008-10-27 15:55:23

1

你可以找到这个问题的一些很好的答案:Programmatically create and launch and RDP session (without gui)

因为RDP是一个constantly evolving proprietary protocol,我猜没有一些简单的开源代码可以使用。这给我们留下了两种可能的路径如下:

  1. Use Microsoft RDP ActiveX control(在Windows上)
  2. 启动和的mstsc.exe发送键盘事件,它(也可以在Windows,用你最喜欢的语言)

对于第二种选择,我建议AutoHotkey。它非常适合自动化Windows程序,并附带强大的库。它背后还有一个强大的社区,所以你可以在互联网上找到很多有用的脚本。我用它来控制winamp(比如'我讨厌这首歌曲!删除它并移动到下一个')(从技术上讲,'移动到下一首歌曲并删除前一首',因为在使用时你不能删除文件,但是你得到这个想法)。如果你选择这条道路,我可以帮你处理脚本。