Запустите PowerShell на удаленной машине с помощью JAVA

Я хочу запустить PowerShell на некотором удаленном компьютере с использованием Java. Как этого достичь? в настоящее время этот код не выполняет команду powershell локально.!!

  public void main() throws Exception{

  String[] command = { /*"cmd.exe", "/C",*/ "powershell", "Command","&","echo '********** hello world ********'"};
  String out;

  ProcessBuilder processBuilder = new ProcessBuilder(command);

  Process process = null;

  try {
                            process = processBuilder.start();
                             Logger.getInstance().info("process started" );

                        } catch (IOException e2) {
                            // TODO Auto-generated catch block
                            e2.printStackTrace();
                        }


                        java.io.InputStream is = process.getInputStream();
                        InputStreamReader isr = new InputStreamReader(is);

                        BufferedReader br = new BufferedReader(isr);
                        // create a reader for the return data from cmd.
                        StringBuilder sb = new StringBuilder();
                        // create a string builder to automate the string addition

                        try {
                            while ((out = br.readLine()) != null) {// build the input
                                                                        // string from
                                                                        // cmd.

                                sb = sb.append(out);
                    System.out.println(out);

                            }


                        } catch (IOException e) {
                            // TODO Auto-generated catch block
                            e.printStackTrace();
                        }

этот код выполняется в течение неопределенного времени. без какого-либо вывода.

1 ответ

Вы можете попробовать выполнить что-то вроде "invoke-command -computername Server1 -filepath c:\scripts\script.ps1"

    Process p = new ProcessBuilder()
            .inheritIO()
            .command("invoke-command", "-computername", "Server1",
                    "-filepath", "C:\\scripts\\script.ps1").start();
    p.waitFor();

но прежде всего убедитесь, что эта команда работает нормально из командной строки.

Другие вопросы по тегам