如何用java连接远程windows机器?

我想使用Java程序从本地计算机连接到远程Windows桌面。
我必须检查远程计算机中的磁盘空间和其他几项服务。

远程桌面连接

JAVA

// creating credentials Process p = Runtime.getRuntime().exec("cmdkey /generic:"+ip+" /user:"+userName+" /pass:"+password ); p.destroy(); Runtime.getRuntime().exec("mstsc /v: "+ip+" /f /console"); Thread.sleep(2*60*1000); // min sec millisec // deleting credentials Process p1 = Runtime.getRuntime().exec("cmdkey /delete:"+ip); p1.destroy(); 
  • 通过使用cmdkey,我们可以创建或删除特定于当前用户的凭据。

命令行

 C:>cmdkey /generic:192.168.0.11 /user:XXXXX /pass:XXXXX CMDKEY: Credential added successfully. C:>mstsc.exe /v:192.168.0.11 /w:800 /h:600 Connecting to Remote Desktop. C:>cmdkey /delete:192.168.0.11 CMDKEY: Credential deleted successfully. 

您可以在远程桌面上安装SSH服务器,并且可以使用本地计算机上的jcraft和jsch库编写Java程序,以便与远程桌面进行ssh连接。

你也可以考虑一个RDP java解决方案。 那里有很多解决方案。 在这里查看它们: http : //en.wikipedia.org/wiki/Comparison_of_Java_Remote_Desktop_projects

干杯!

答案取决于您的本地计算机(主机)用于连接到远程目标Windows框的操作系统。

如果它是基于Unix的盒子,我建议使用开源库j-Interop

请注意 ,您可能需要手动修改目标框上的注册表,以便它可以正常工作(确保您仔细阅读项目网站的常见问题解答)。 如果您发现奇怪的问题(连接时抛出exception),这里有一篇很好的文章帮我解决了这些问题: https : //wiki.jenkins-ci.org/display/JENKINS/Windows+slaves+fail+to+start+via+ DCOM

另一方面,如果您使用Windows框作为主机,那么您的生活将变得更加容易。 我建议使用:

  • JACOB
  • jWMI
  • Jawin

请注意,以上所有都是开源项目。

如上所述的免费软件版本是j-Integra,但我从未尝试过使用它。