如何 运行 在主机中的每个虚拟机中使用 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
我是 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