java 调用powershell,在Java程序中执行PowerShell命令

I have a PowerShell Command which I need to execute using Java program. Can somebody guide me how to do this?

My command is Get-ItemProperty HKLM:\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate |

Format-Table –AutoSize

解决方案

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\" ";