Executing PowerShell Commands in Java Program Executing PowerShell Commands in Java Program powershell powershell

Executing PowerShell Commands in Java Program


You should write a java program like this, here is a sample based on Nirman's Tech Blog, the basic idea is to execute the command calling the PowerShell process like this:

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class PowerShellCommand { public static void main(String[] args) throws IOException {  //String command = "powershell.exe  your command";  //Getting the version  String command = "powershell.exe  $PSVersionTable.PSVersion";  // Executing the command  Process powerShellProcess = Runtime.getRuntime().exec(command);  // Getting the results  powerShellProcess.getOutputStream().close();  String line;  System.out.println("Standard Output:");  BufferedReader stdout = new BufferedReader(new InputStreamReader(    powerShellProcess.getInputStream()));  while ((line = stdout.readLine()) != null) {   System.out.println(line);  }  stdout.close();  System.out.println("Standard Error:");  BufferedReader stderr = new BufferedReader(new InputStreamReader(    powerShellProcess.getErrorStream()));  while ((line = stderr.readLine()) != null) {   System.out.println(line);  }  stderr.close();  System.out.println("Done"); }}

In order to execute a powershell script

String command = "powershell.exe  \"C:\\Pathtofile\\script.ps\" ";


No need of reinvent the wheel. Now you can just use jPowerShell

String command = "Get-ItemProperty " +                "HKLM:\\Software\\Wow6432Node\\Microsoft\\Windows\\CurrentVersion\\Uninstall\\* " +                "| Select-Object DisplayName, DisplayVersion, Publisher, InstallDate " +                "| Format-Table –AutoSize";System.out.println(PowerShell.executeSingleCommand(command).getCommandOutput());


you can try to calle the powershell.exe with some commands like :

String[] commandList = {"powershell.exe", "-Command", "dir"};          ProcessBuilder pb = new ProcessBuilder(commandList);          Process p = pb.start();