如何使用Powershell在VMWare工作站上远程启动VM?

如何使用Powershell在VMWare工作站上远程启动VM?,powershell,virtual-machine,powershell-remoting,vmware-workstation,vmrun,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

我有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命令
在删除会话参数时有效:

Invoke-Command -ScriptBlock $script -ArgumentList $vmConfig.VMImagePathOnHost, $vmConfig.VMRunUtiltyPath
我有一个类似的脚本,它通过PSSession成功地恢复到本地主机上的快照,那么为什么启动VM会给我带来麻烦呢?

如果您“输入PSSession”,然后尝试调用它,它会工作吗

我假设它在这里对您“不起作用”,因为您在没有可见桌面/gui会话的情况下通过PSSession调用命令,并且希望VMWare工作站出现?接收端是一个服务

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

要实现您希望在这里实现的目标,您可以看看PsExec,它允许将应用程序启动到活动会话中

注意PSExec上的“-i”参数