2012-04-03 79 views
1

我試圖自動化一些身份驗證,我通過RDP進行連接,並使用從PROPERTIES文件中獲取的憑據對特定服務器進行身份驗證。Java - 連接到Windows中的RDP服務器

在Windows上,內置的RDP客戶端是mstsc.exe,但它似乎不像通過命令行提供登錄憑證,就像在Linux和Mac上一樣。

在Windows上是否有任何解決方法,使用mstsc.exe,我可以自動進行身份驗證,而無需用戶進行任何交互?

謝謝。

回答

1

您可以使用自定義連接文件嗎?然後將它傳遞到MSTSC E.G:

mstsc customfile.RDP 

下面是一個RDP文件的樣子,我保存的憑證,記滿地址字段和用戶名字段。

screen mode id:i:2 
use multimon:i:0 
desktopwidth:i:1680 
desktopheight:i:1050 
session bpp:i:32 
winposstr:s:0,3,0,0,800,600 
compression:i:1 
keyboardhook:i:2 
audiocapturemode:i:0 
videoplaybackmode:i:1 
connection type:i:2 
displayconnectionbar:i:1 
disable wallpaper:i:1 
allow font smoothing:i:0 
allow desktop composition:i:0 
disable full window drag:i:1 
disable menu anims:i:1 
disable themes:i:0 
disable cursor setting:i:0 
bitmapcachepersistenable:i:1 
full address:s:###.###.###.###:#### 
audiomode:i:0 
redirectprinters:i:1 
redirectcomports:i:0 
redirectsmartcards:i:1 
redirectclipboard:i:1 
redirectposdevices:i:0 
redirectdirectx:i:1 
autoreconnection enabled:i:1 
authentication level:i:2 
prompt for credentials:i:0 
negotiate security layer:i:1 
remoteapplicationmode:i:0 
alternate shell:s: 
shell working directory:s: 
gatewayhostname:s: 
gatewayusagemethod:i:4 
gatewaycredentialssource:i:4 
gatewayprofileusagemethod:i:0 
promptcredentialonce:i:1 
use redirection server name:i:0 
username:s:<USERNAME> 

傳遞給mstsc.exe調用。我會嘗試查看密碼的存儲位置。

我不會稱這個超級安全。我認爲密碼是以加密的方式存儲的,直到我弄清楚爲止,只需幾分鐘。

你想要完成什麼? MSTSC不會基於身份驗證返回值。所以,我不確定你打算如何捕捉。

+0

感謝您的答覆。我正在編寫軟件以通過RDP自動執行SPNEGO身份驗證。我正在查看.RDP文件,但我正在編寫軟件,供測試人員使用,以測試不同用戶/傳遞組合下的操作。這些憑證很可能存儲在.PROPERTIES文件中。在從.PROPERTIES文件中提取憑據後,我必須爲每個用戶創建一個.RDP文件。 – eoinzy 2012-04-03 20:19:49

+0

@eoinzy這是真的,你必須每次創建一個文件,但它可能是暫時的。除UN,PW和IP地址外,文件內容可能保持不變。每次處理文件時,您都可以銷燬或覆蓋該文件。我認爲用戶每次都會控制這個Java程序?我試圖理解編程的好處。謝謝 – kevingreen 2012-04-03 20:22:54

+0

用戶將成爲一名軟件測試員。目前,當他們運行自動化腳本時,他們必須停止並登錄到RDP。我試圖通過告訴他們提供證書列表來實現自動化,剩下的事情我會做。他們所要做的就是調用像'myclass.loginNextUser()'。 – eoinzy 2012-04-03 20:44:03

1

可以使用輸入的cmdkey工具

cmdkey.exe /generic:servername /user:username /pass:pass 

一旦運行該存儲RDP憑據,您MSTSC通話將能夠自動登錄:

mstsc.exe /v:servername