2012-04-03 45 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