【问题标题】:Access non ssh windows hosts and apply cmd commands remotely访问非 ssh windows 主机并远程应用 cmd 命令
【发布时间】:2016-02-18 19:48:51
【问题描述】:

我们过去常常使用 SSH 远程连接到 Windows 机器、执行命令并使用 JSch API 获取回复,例如:

((ChannelExec)channel).setCommand(""cmd /c  dir"+"\r\n"");

InputStream in = channel.getInputStream();
            String sScriptStatus=""; 
            byte[] tmp=new byte[20000];
            while(true){   ...


        }

但是现在我们必须访问一大群没有启用 SSH 的机器,并且我们不想更改这些机器上的任何内容。是否还有其他类似的 Windows 内置 API 可供我们使用?

【问题讨论】:

    标签: windows remote-access


    【解决方案1】:

    根据您的环境和要求,您可以使用wmicpsexec 来执行远程命令。

    psexec:

    psexec \\remote-computer cmd /c dir
    

    wmic:

    wmic /node:remote-computer process call create "cmd /c dir"
    

    【讨论】:

    • 嗨 Razvan,感谢您的回复。我正在使用 java 多线程技术,因为我想同时在数千台主机上执行 cmd 命令,所以如果我可以在访问主机本身的 cmd 上运行命令,我会犹豫,因为我认为这会导致很多问题和速度如果我是从我的 Windows 命令行执行的,请关闭该过程。
    • 您仍然可以将每个 psexec/wmic 调用放在单独的线程中。在您的应用程序机器上运行的唯一命令是 psexec/wmic 调用,而不是远程命令(即“cmd /c dir”)。因此,您将拥有 psexec/wmic,而不是 SSH 客户端。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-23
    • 1970-01-01
    • 1970-01-01
    • 2015-07-05
    • 2016-12-16
    • 2020-11-07
    相关资源
    最近更新 更多