我有一个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”
感谢。
答案 0 :(得分:0)
我在这里找到了类似的帖子:Capturing standard out and error with Start-Process
无论出于何种原因,powershell解决方案都不会像我预期的那样将流程结果发送到-OutVariable。
因此,我按照指示页面上的步骤创建了新的$pinfo = New-Object System.Diagnostics.ProcessStartInfo
。
我设置了相应的属性,然后使用System.Diagnostics.Process启动了该过程,它允许我将结果输出到字符串变量。