【问题标题】:How to run powershell code in every virtual machine in the host如何在主机中的每个虚拟机中运行 powershell 代码
【发布时间】:2017-10-23 11:04:32
【问题描述】:

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

提前致谢

【问题讨论】:

  • 你为什么不问你的朋友工具的名字呢?这也太模糊了,我什至不能(c)
  • 我的朋友也不确定工具名称。

标签: powershell vmware powershell-4.0 esxi


【解决方案1】:

您可以在脚本块内创建脚本并在枚举 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
}

如果您可以获得虚拟机的实际计算机名称,您还可以在循环中使用脚本块:

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

其他问题的更新

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

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

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

【讨论】:

  • +Ben Richards 感谢您的回答。如果您不介意,请帮助我了解有关 power shell 工具的信息。是否有 Phillips 开发的任何工具来运行 Powershell 脚本,或者是否有任何其他工具来运行 powershell 脚本。
  • 是的,可能有十几种工具可以开发 Posh(Powershell 官方缩写)脚本。您不需要工具来运行 Posh 脚本,因为 Posh 环境已经内置在 Windows 中。我不知道 Phillips 的那个,但是 Windows 7-8-10 带有一个不错的 IDE,用于编写 Posh 脚本。它被称为 Windows Powershell ISE。它应该已经安装在您的 Windows 机器上。
  • 每次我们打开虚拟机电源时,上面的代码都会运行吗?如果我们只运行一次代码怎么办?并且没有给出运行虚拟机的主机名,代码如何在主机中的虚拟机上执行
  • 没有。您要求代码在多个 VM 上运行,而不是每次启动 VM 时都在每个 VM 上运行。如果您想在每次启动 VM 时运行一些代码,则必须将该代码放入 VM 本身的操作系统中。如果你给我一些你想要完成的细节,也许我可以给你一个更好的答案..
  • 我不希望每次打开 VM 时都运行代码。您给出的答案是完美的,但是代码如何知道在打开电源的特定主机上的虚拟机上运行。因为我们没有在脚本中提供任何与主机相关的信息。我们需要在哪里保存我们的 Powershell 脚本?以及如何管理主机和脚本之间的配置。感谢您的耐心等待。
猜你喜欢
  • 2010-11-10
  • 2010-09-05
  • 2020-09-16
  • 1970-01-01
  • 2017-11-05
  • 2018-09-03
  • 1970-01-01
  • 2011-05-13
  • 2021-03-08
相关资源
最近更新 更多