【发布时间】:2020-03-27 01:44:39
【问题描述】:
我有这个 Powershell 行,它应该列出所选订阅中的所有虚拟机,我总共有 3 个订阅。
$azureSubscriptionID = "xxxxx-xxxxx-xxxxx-xxxx"
foreach ($subs in $azureSubscriptionID)
{
Write-Output "Collecting VM facts from subscription $subs"
$vms += Get-AzureRMSubscription | ForEach-Object {Select-AzureRMSubscription $_ | Out-Null; Get-AzureRmVM -WarningAction SilentlyContinue}
}
问题是在运行脚本并使用 $vms 时,它会连续 3 次列出所有可用的 vms 订阅,如下所示:
VM A VM B VM C
虚拟机 A 虚拟机 B 虚拟机 C
虚拟机 A 虚拟机 B 虚拟机 C
我做错了什么以及如何解决?还是有其他方法可以在几行中从 X 订阅中获取所有虚拟机?在 Azure Runbook 中使用它。
【问题讨论】:
-
您的代码在
foreach ($subs in $azureSubscriptionID)循环中仅显示一项。所以我会首先检查代码每一步的值。 -
是的,我知道,但将来可能会有不止一个订阅作为参数,这就是我需要循环它们的原因。
-
感谢您的“为什么”。 [grin] 我看到
AdminOfThings提供了解决方案 - 很高兴知道您有解决方案。
标签: azure powershell foreach virtual-machine