0

我目前正在制作一个 Java 应用程序,它将执行远程 Windows 机器的命令(从命令提示符)。

为了开发这个,我尝试了以下操作:

  1. 使用 Jsch 库,应用程序在连接到Unix 机器时运行良好,我能够使用“prstat -a”命令获取进程列表,但是当我尝试使用Windows 机器时,它给了我ConnectException(超时)

    private final static String HOSTNAME = "SOMECOMPUTERNAME.XXX.XXX.XXX.COM";//
    private final static String USERNAME = "SOMEUSERNAME";
    private final static String PASSWORD = "SOMEPASSWORD";
    private final static int PORT = 22;
    
    public static void main(String[] args) {
        JSch jscc = new JSch();
        try {
            Session session = jscc.getSession(USERNAME, HOSTNAME, PORT);
            session.setPassword(PASSWORD);
            Properties localProperties = new Properties();
            localProperties.put("StrictHostKeyChecking", "no");
            session.setConfig(localProperties);
    
            session.connect(60000);
            System.out.println("Session connected");
    
        } catch (JSchException e) {
            e.printStackTrace();
        }
    }
    

目标机器信息:

  • Windows x64 工作站
  • 已安装最新版本的 Java
  • 不使用任何加密

请指导这一点,可以使用 Jsch 库完成,如果不是,您可以推荐哪种方法。

您可以假设以下事情:

  • 我不希望目标机器中有任何代码。所以一个驻留在我的工作站中的 Java 应用程序只执行一些简单的窗口命令,如目标窗口机器中的 dir 或 start applicationName
  • 我有用户名和相应的密码
  • 我没有 IP 地址,只有一个完整的计算机名称,格式如上面的代码所示(HOSTNAME)

欢迎任何建议。

问候,

icr

4

1 回答 1

0

Windows 默认没有安装 SSH。您将需要一个用于 Windows 的 SSH 客户端。

我更喜欢 OpenSSH ......它免费且完美运行

于 2013-11-26T19:54:53.540 回答