【问题标题】:RDP connectivity/responsiveness testRDP 连接/响应测试
【发布时间】:2013-10-10 00:14:54
【问题描述】:

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

是否有我可以用来执行此操作的库或实用程序?我的搜索出现了完整的RDC clients,但我希望那里有一些东西至少提供了一个用于测试的 API。我最想使用 Java 或脚本语言来做到这一点,但我愿意接受建议。

【问题讨论】:

  • 你有这些机器的管理员权限吗?

标签: remote-desktop


【解决方案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(比如“我讨厌这首歌!删除它并移至下一首”)(好吧,从技术上讲,“移至下一首歌曲并删除上一首”,因为您在使用时无法删除文件,但您明白了)。如果你选择这条路,我可以帮你写剧本。

【讨论】:

    【解决方案2】:

    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”秒内连接,则假设它无法正常工作。如果您尝试查看特定用户的登录是否有效,会变得有点复杂,但这至少应该让您开始。

    注意:正如 cmets 中所指出的,原始解决方案省略了 RDP 端口,因此我将其包含在此...

    【讨论】:

    • 澄清一下,我寻找的不仅仅是 telnet。我需要确认不仅可以处理连接,而且远程桌面也可以响应。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-11
    • 1970-01-01
    • 2019-12-17
    • 2019-10-16
    • 1970-01-01
    • 2019-03-18
    相关资源
    最近更新 更多