【问题标题】:How do I remotely start a VM on VMWare Workstation using Powershell?如何使用 Powershell 在 VMWare Workstation 上远程启动 VM?
【发布时间】:2015-04-30 12:24:00
【问题描述】:

我有 VMWare 工作站和 PowerShell 的初学者知识。

我创建了一个脚本,该脚本使用vmrun 工具在我的本地计算机上成功启动了一个虚拟机。但是,如果我通过远程会话运行它,则不会发生任何事情。知道为什么吗?

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 成功恢复到我的本地主机上的快照,那么为什么启动 VM 会给我带来麻烦?

【问题讨论】:

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


    【解决方案1】:

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

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

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-10-07
      • 2013-01-25
      • 1970-01-01
      • 1970-01-01
      • 2019-07-30
      • 2013-06-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多