我想编写一个应用程序来测试 Windows 机器是否正确响应RDP(远程桌面) - 即检查机器是否不仅允许连接,而且响应正常,并且没有挂起或以其他方式响应异常。
是否有可以用来执行此操作的库或实用程序?我的搜索结果已满RDC clients
,但我希望至少有一些东西可以提供用于测试的 API。我最想使用 Java 或脚本语言来做到这一点,但我愿意接受建议。
我想编写一个应用程序来测试 Windows 机器是否正确响应RDP(远程桌面) - 即检查机器是否不仅允许连接,而且响应正常,并且没有挂起或以其他方式响应异常。
是否有可以用来执行此操作的库或实用程序?我的搜索结果已满RDC clients
,但我希望至少有一些东西可以提供用于测试的 API。我最想使用 Java 或脚本语言来做到这一点,但我愿意接受建议。
在专家交流中找到了这个:
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 端口,因此我将其包含在此...
您可以在这个问题中找到一些好的答案:Programmatically create and launch and RDP session (without gui)
因为 RDP 是一个不断发展的专有协议,我猜没有一些简单的开源代码可以让你获取和使用。这给我们留下了两条可能的路径:
对于第二个选项,我建议AutoHotkey。它非常适合自动化 Windows 程序,并带有一个强大的库。它背后也有一个强大的社区,因此您可以在互联网上找到许多有用的脚本。我用它来控制 winamp(比如“我讨厌这首歌!删除它并移至下一首”)(好吧,从技术上讲,“移至下一首歌曲并删除上一首”,因为您不能在使用时删除文件,但您明白了)。如果您选择此路径,我可以帮助您编写脚本。