从java调用powershell脚本

时间:2015-03-22 12:28:40

标签: java powercli

我正在尝试从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调用第一个命令并忽略其余命令。

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

2 个答案:

答案 0 :(得分:0)

请先检查您的模块

get-module 

如果您还没有添加Hyper-v模块 你应该有Hyper-v模块使用get-vm

ipmo hyperv

对于hypervisor vmware esxi,你应该看到下行链接 vmware esxi via powershell 并添加

ipmo CimCmdlets

答案 1 :(得分:0)

尝试替换

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

Add-PSSnapin vmware.vimautomation.core

您还需要按照其他答案的含义运行connect-viserver