如何 运行 在主机中的每个虚拟机中使用 powershell 代码

How to run powershell code in every virtual machine in the host

我是 powershell 的新手,我有一个 powershell 脚本,它应该同时在我主机中的每个虚拟机上 运行。我的一个朋友告诉我,有一个由 Phillips 开发的工具,但我搜索了它但找不到。有人可以帮我解决吗,有没有什么工具可以解决这个问题。

提前致谢

您可以在脚本块中创建脚本,然后 运行 在枚举 VM 时创建脚本。

# On the host, Get-VM get's you the available VMs.
$runniungVMs = $Get-VM -State 'Running'

foreach ($vm in $runningVMs) {
  Enter-PSSession $vm
  # Write Some code to execute after this line
}

如果可以获取 VM 的实际计算机名称,也可以在循环内使用脚本块:

Invoke-Command –ComputerName <computerName> -Credential  $Cred –ScriptBlock {
  # Write some code to execute
}

关于其他问题的更新

Get-VM命令获取命令为运行ning的主机上可用的虚拟机列表。

如果您的 VM 主机不是您运行正在使用的机器,您可以指定 VM 主机的计算机名称。以下是获取 Server1 上 运行ning 虚拟机列表的方法:

Get-VM -ComputerName Server1 | Where-Object {$_.State -eq 'Running'}

Posh 也有很大的帮助。如果您需要了解有关任何命令的更多信息,您可以使用:

get-help Get-VM

get-help Get-VM -examples
get-help Get-VM -detailed
get-help Get-VM -full