如何使用Powershell在VMWare Workstation上远程启动VM?

时间:2015-02-27 17:35:41

标签: powershell virtual-machine powershell-remoting vmware-workstation vmrun

我拥有VMWare Workstation和初学者对PowerShell的了解。

我已经创建了一个脚本,可以使用vmrun工具在我的本地计算机上成功启动VM。但是,如果我通过远程会话运行它,则没有任何反应。知道为什么吗?

Get-PSSession | Remove-PSSession
$VMHostMachine | New-PSSession 

$rs = Get-PSSession  # testing using localhost

Write-Debug ("Now starting VM on host: " + $VMHostMachine)
$script = {param($VMImagePath, $VMConsolePath);
    $QuotedVMPath = "`"{0}`"" -f $VMImagePath
    $Result = Start-Process -FilePath $VMConsolePath -ArgumentList "-T", "ws", "start", $QuotedVMPath -Wait -PassThru -NoNewWindow
}

Invoke-Command -Session $rs -ScriptBlock $script -ArgumentList $vmConfig.VMImagePathOnHost, $vmConfig.VMRunUtiltyPath
如果我删除会话参数,则

Invoke-Command有效:

Invoke-Command -ScriptBlock $script -ArgumentList $vmConfig.VMImagePathOnHost, $vmConfig.VMRunUtiltyPath

我有一个类似的脚本通过PSSession成功恢复到我的localhost上的快照,那么为什么启动VM会给我带来麻烦呢?

1 个答案:

答案 0 :(得分:0)

如果你“输入pssession”然后尝试调用它会起作用吗?

我假设你在这里“不工作”,因为你通过PSSession调用命令,那里没有可见的桌面/ gui-session,你期望VMWare工作站出现?接收端是一项服务。

您可以使用Get-Process检查进程是否正在运行VMWare。

要完成您想要实现的目标,您可以查看PsExec,它允许将应用程序启动到活动会话中。

https://technet.microsoft.com/en-US/sysinternals/bb897553.aspx

注意PSExec上的“-i”参数。