我正在编写一个 PowerShell 脚本来列出 Azure 订阅中的资源组。
Get-AzureRmSubscription |
select -ExpandProperty name |
% {
Get-AzureRmResourceGroup | select -ExpandProperty resourcegroupname
}
这段代码有效。它返回这样的结果。
Resource group 1
Resource group 2
Resource group 3
如何调整代码以获得如下所示的输出?
Subscription 1,Resource group 1
Subscription 1,Resource group 2
Subscription 2,Resource group 3
非常感谢。
最佳答案
添加到@mklement's很好的答案,这是您如何使用最新的 Azure PowerShell Az module 来做到这一点而不是 AzureRM:
Get-AzSubscription | ForEach-Object {
$subscriptionName = $_.Name
Set-AzContext -SubscriptionId $_.SubscriptionId
(Get-AzResourceGroup).ResourceGroupName | ForEach-Object {
[PSCustomObject] @{
Subscription = $subscriptionName
ResourceGroup = $_
}
}
}
要更改为事件订阅,我们可以使用 Set-AzContext
更改上下文,并传递来自 Get-AzSubscription
的 SubscriptionId
。还应该能够通过 Set-AzContext -Subscription $subscriptionName
传递订阅名称。
如果要使用 Az 模块运行 AzureRM 命令,可以运行 Enable-AzureRmAlias
,它允许您将 AzureRM 前缀与 Az 模块一起使用。
关于azure - 如何使用 PowerShell 跨 Azure 订阅列出资源组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61679470/