从 java 调用 powershell 脚本

Invoke powershell script from java

我正在尝试从 Java 调用一些 powercli 脚本,但它失败了。

我正在使用 VMWare esx

这是我的Java代码:

String command = "cmd.exe C:\Users\mayan\Desktop\scriptPS.ps1";
Process powerShellProcess = Runtime.getRuntime().exec(command);
powerShellProcess.getOutputStream().close();

这是我的脚本(.ps1 文件):

C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1
Get-VM -Name dev-maya | Get-NetworkAdapter | Set-NetworkAdapter -Connected:$false           
Get-VM -Name dev-maya | Get-NetworkAdapter | Set-NetworkAdapter -Connected:$true

Java 调用第一个命令并忽略其余命令。

有人知道如何解决这个问题吗?

请先检查你的模块

get-module 

如果你没有添加Hyper-v模块那么 你应该有 Hyper-v 模块来使用 get-vm

ipmo hyperv

对于 hypervisor vmware esxi 你应该往下看 link vmware esxi via powershell 并添加

ipmo CimCmdlets

尝试更换

C:\Program Files (x86)\VMware\Infrastructure\vSphere PowerCLI\vim.psc1

Add-PSSnapin vmware.vimautomation.core

您还需要 运行 connect-viserver 正如其他答案中所暗示的那样。