azure - 如何使用 PowerShell 跨 Azure 订阅列出资源组?

标签 azure powershell

我正在编写一个 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-AzSubscriptionSubscriptionId 。还应该能够通过 Set-AzContext -Subscription $subscriptionName 传递订阅名称。

如果要使用 Az 模块运行 AzureRM 命令,可以运行 Enable-AzureRmAlias ,它允许您将 AzureRM 前缀与 Az 模块一起使用。

关于azure - 如何使用 PowerShell 跨 Azure 订阅列出资源组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61679470/

相关文章:

c# - 通过代码删除documentdb中的多个文档

azure - 在 Azure 应用服务上运行部署后操作

在 nvm 更改节点版本后,Powershell 无法识别 npm

powershell - 如何在 EC2 实例上更新 SSL 证书

azure - 在 .ps1 脚本中和 .ps1 脚本文件中使用 az vm run-command

azure - 如何使用 powershell 设置 azure 逻辑应用定义

azure - 如何在 Azure 逻辑应用中使用自定义 URL 作为 HTTP 请求?

Azure服务总线: The connection string used for an Service Bus client must specify the Service Bus namespace host and either a Shared Access Key

c# - 调试 Task.WhenAny 和推送通知

powershell - DataGridView中的标题复选框