2008-10-27 60 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(比如'我討厭這首歌曲!刪除它並移動到下一個')(從技術上講,'移動到下一首歌曲並刪除前一首',因爲在使用時你不能刪除文件,但是你得到這個想法)。如果你選擇這條道路,我可以幫你處理腳本。