如何修改Get-AzWebApp命令导出含订阅名的自定义域名列表到CSV
PowerShell脚本修改方案
问题根因
Get-AzWebApp返回的Web应用对象没有内置的订阅属性,直接添加Subscription参数自然返回空值,我们可以直接复用外层循环中已获取的订阅对象来注入该字段。
修改后完整代码
# 提前创建导出目录避免报错 New-Item -Path C:\temp -ItemType Directory -Force | Out-Null $Subscriptions = Get-AzSubscription foreach ($sub in $Subscriptions) { Set-AzContext -SubscriptionObject $sub | Out-Null Get-AzWebApp | Select-Object SiteName, DefaultHostName, ResourceGroup, @{n="Subscription";e={$sub.Name}}, @{n="EnabledHostNames";e={$_.EnabledHostNames -join ","}} | Export-Csv -Path c:\temp\AzAppsUrl2.csv -Append -NoTypeInformation }
调整说明
- 新增了计算属性
Subscription,直接读取外层循环当前遍历的订阅名称,不需要额外调用接口,执行效率更高 - 字段严格按照需求放在
ResourceGroup之后,符合CSV导出的字段排序要求 - 简化了上下文切换的写法,不需要重复调用Get-AzSubscription,直接用已拿到的$sub对象即可
- 新增了导出目录自动创建逻辑,避免路径不存在的报错
如果你需要输出订阅ID而非订阅名称,把计算属性中的
$sub.Name改为$sub.Id即可。
内容的提问来源于stack exchange,提问作者Eric
相关产品推荐
相关产品推荐

