使用PowerShell自动化vmrun

时间:2017-07-06 12:58:23

标签: powershell vmware vmrun

我有一个PowerShell 2.0脚本,用于在Windows主机环境中使用vmrun克隆目标vmware工作站guest虚拟机。 克隆虚拟机的代码可以正确执行。

我现在正在尝试扩展此脚本以自动执行更多过程,例如,检查虚拟机是否正在运行notification,以及停止虚拟机{{1}如果正在运行。

使用Windows命令提示符,当我运行vmrun list时,它将返回以下内容:

  

总运行虚拟机:2
  d:\ [路径] \ [名称]的.vmx
  E:\ [路径] \ [名称] .vmx

当我在PowerShell中尝试以下操作时,没有任何返回。这是我到目前为止所尝试的。我期待一个数组返回我从命令提示符运行时看到的值。

vmrun stop [pathToVMXfile]

无论我尝试什么,我都没有得到任何输出。我错过了什么? 注意:可在此处找到Vmrun命令行文档:“https://www.vmware.com/support/developer/vix-api/vix112_vmrun_command.pdf

感谢。

1 个答案:

答案 0 :(得分:0)

我在这里找到了类似的帖子:Capturing standard out and error with Start-Process

无论出于何种原因,powershell解决方案都不会像我预期的那样将流程结果发送到-OutVariable。

因此,我按照指示页面上的步骤创建了新的$pinfo = New-Object System.Diagnostics.ProcessStartInfo。 我设置了相应的属性,然后使用System.Diagnostics.Process启动了该过程,它允许我将结果输出到字符串变量。