如何使用PowerShell获取Azure订阅及资源列表并导出为指定格式CSV
调整后的可满足需求的PowerShell脚本如下:
Get-AzSubscription | ForEach-Object { $subscriptionName = $_.Name $subscriptionId = $_.SubscriptionId # 仅切换当前进程的订阅上下文,不影响全局配置 Set-AzContext -SubscriptionId $subscriptionId -Scope Process | Out-Null Get-AzResource | Select-Object ` @{Name='订阅名称';Expression={$subscriptionName}}, @{Name='订阅ID';Expression={$subscriptionId}}, @{Name='关联资源名称';Expression={$_.Name}}, @{Name='资源组名称';Expression={$_.ResourceGroupName}}, @{Name='位置';Expression={$_.Location}}, @{Name='资源类型';Expression={$_.Type}} } | Export-Csv -Path azureinventory.csv -NoTypeInformation -Encoding UTF8
主要调整点说明:
- 新增计算属性将订阅名称、订阅ID和资源本身的属性绑定到同一个输出对象,保证每行资源数据都对应携带所属订阅信息,列名完全匹配需求
- 给
Set-AzContext添加-Scope Process参数,避免修改本地全局Azure上下文配置,加Out-Null屏蔽上下文切换的冗余输出 - 给
Export-Csv添加-NoTypeInformation参数,去掉CSV开头多余的PowerShell对象类型说明行,添加-Encoding UTF8参数避免用Excel等工具打开时出现乱码、所有数据挤在同一列的问题
内容的提问来源于stack exchange,提问作者Amol G
相关产品推荐
相关产品推荐

