Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java psexec交互式远程命令行_Java_Windows_Remote Access_Psexec - Fatal编程技术网

Java psexec交互式远程命令行

Java psexec交互式远程命令行,java,windows,remote-access,psexec,Java,Windows,Remote Access,Psexec,我对psexec有一个问题,它不是交互式的。它在运行打开命令提示符的命令后立即返回 这是我的连接类: package testProject; import java.io.BufferedReader; import java.io.InputStreamReader; import java.io.PrintStream; public class ConTest { private ProcessBuilder process; private Process co

我对psexec有一个问题,它不是交互式的。它在运行打开命令提示符的命令后立即返回

这是我的连接类:

package testProject;

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintStream;


public class ConTest {

    private ProcessBuilder process;
    private Process connection;
    private String main_connection;;

    public ConTest(String host, String user, String password) {
        process = new ProcessBuilder("cmd.exe");
        process.redirectErrorStream(true);
        main_connection="<path to psexec>\psexec.exe \\\\" + host + 
                " -accepteula -nobanner -u " + user + " -p " + password +" cmd";
    }

    public void runCommand(String command) throws Exception{

        /* Variable Declaration */
        String          readline;
        PrintStream     output;
        BufferedReader  input;

        /* Variable Initialization */
        connection = process.start();
        output = new PrintStream(connection.getOutputStream());
        input = new BufferedReader(new InputStreamReader(connection.getInputStream()));

        /* Running the commands on the Host */

        output.println(main_connection);
        output.println(command);
        output.println("exit");
        output.close();

        /*print the output from the command*/
        while ((readline = input.readLine()) != null) {
            System.out.println(readline);
        }

        input.close();
        connection.waitFor();
    }
}
接下来是ping统计


如何使命令提示符成为输出流的焦点,以便在管道中发送更多命令时,这些命令在远程计算机而不是本地计算机上执行?

我使用了paexec而不是psexec,它成功地为我提供了一个交互式会话,希望这对将来的人有所帮助

我使用了paexec而不是psexec,它成功地为我提供了一个交互式会话,希望这对将来的人有所帮助

package testProject;

public class mainClass {

    public mainClass() {
    }

    public static void main(String[] args) throws Exception {

        ConTest con = new ConTest(<IP>, <Admin>, <Password>);
        con.runCommand("ping localhost");

    }
}
C:><path to psexec>\psexec.exe \\<IP> -accepteula -nobanner -u <Admin> -p <Password> cmd
Microsoft Windows [Version 6.1.7601]Connecting to <IP>...


Starting PSEXESVC service on <IP>...


Connecting with PsExec service on <IP>...


Starting cmd on <IP>...



cmd exited on <IP> with error code 0.

C:\>ping localhost