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

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

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

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

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如果我删除 session 参数,则有效:
Invoke-Command -ScriptBlock $script -ArgumentList $vmConfig.VMImagePathOnHost, $vmConfig.VMRunUtiltyPath

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

最佳答案

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

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

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

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

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

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

关于powershell - 如何使用 Powershell 在 VMWare Workstation 上远程启动 VM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28771026/

相关文章:

通过 Powershell SSH (POSH) 进行 MYSQLDUMP

sql - 如何使用powershell执行.sql文件?

xml - Powershell和Lotus Notes-将While循环的输出从文本更改为XML输出

php - 在 Vagrant 盒子之外连接到 MySQL

database - 监听器启动失败

powershell - Azure Runbook - GetAzurermlog

powershell - 使用PowerShell的Invoke-Command进行远程处理时,如何包含本地定义的函数?

powershell - 导出到excel的脚本

powershell - 检查远程计算机中的 WinRM 服务

java - 更改运行 Eclipse 的 Java 版本