如何从多个 ResourceGroups 以及跨多个订阅导出 LocalNetworkGateway 信息

How to export LocalNetworkGateway info from multiple ResourceGroups but also across multiple subscriptions

我是 powershell 和 azure 的新手,需要从多个资源组以及跨多个订阅导出所有 LocalNetworkGateway 信息。

贡献者好心地为我提供了一个脚本,可以在单个订阅中输出来自多个资源组的数据,但我需要找到一种跨所有订阅执行此操作的方法,而不必为每个订阅手动设置订阅上下文一个然后 运行 每个订阅的脚本。

我用过

$azureSubs = Get-AzSubscription 

作为跨多个订阅提取信息的一种方式,不需要资源组名称,但我现在被卡住了。下面的代码已成功提供跨 RG 的信息,但在单个订阅内。

$resourceGroups = Get-AzResourceGroup
$resourceGroups.foreach{ 
 Get-AzLocalNetworkGateway -ResourceGroupName $_.ResourceGroupName | 
     Export-Csv -Path "c:\Azure\LocalNetworkGateway.csv" -Append
}

您需要围绕订阅创建另一个循环(类似于资源组),唯一的技巧是您需要在向订阅发出请求之前切换活动订阅:

$azureSubs = Get-AzSubscription 
$azureSubs.foreach{
    Select-AzSubscription $_ # << change active subscription
    $resourceGroups = Get-AzResourceGroup # << same resource group loop starts here
    $resourceGroups.foreach{ 
        Get-AzLocalNetworkGateway -ResourceGroupName $_.ResourceGroupName | 
          Export-Csv -Path "c:\Azure\LocalNetworkGateway.csv" -Append
    }
}