【发布时间】:2016-12-28 02:32:38
【问题描述】:
我正在尝试使用 Java Runtime 类执行 PowerShell 脚本,但由于某种原因没有任何反应。我也试图将 CMD 输出到我的 Java 代码,但没有成功。这是我的代码:
private void connectToServer() {
executeCmdCommand("cd C:/PSTools");// navigate to psTools directory
executeCmdCommand("PsExec.exe //<server1> -u orgnization/user_qa -p sdsad1212 cmd");// connect the server machine
executeCmdCommand("powershell.exe C:/powerShell/stop-process.ps1 MainRls");// stopr service by execute powershell script
}
/**
* execute cmd commands
*/
private void executeCmdCommand(String command){
try {
ProcessBuilder builder = new ProcessBuilder("cmd.exe", "/c", command);
Process process = builder.start();
BufferedReader inputStream = new BufferedReader(new InputStreamReader(process.getInputStream()));
Report.assertOnReport(inputStream.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
当我从 CMD 手动执行相同的命令时,服务成功终止,但在由 Java 代码执行时它什么也不做。
【问题讨论】:
-
您检查过 PowerShell 脚本执行策略吗?默认设置需要签名脚本。打开 Powershell 提示符并输入:
Set-ExecutionPolicy RemoteSigned或Set-ExecutionPolicy Unrestricted
标签: java powershell cmd