【发布时间】:2021-04-19 09:12:10
【问题描述】:
我编写了一个 PowerShell 脚本来检索跨多个订阅的 Azure 恢复服务保管库列表。
这是我的代码:
$subscriptions = Get-AzSubscription
ForEach ($Subscription in $Subscriptions) {
Set-AzContext -SubscriptionId 77a74465-c065-4108-b270-edd84f918fe0
$vaults = get-azrecoveryservicesvault
ForEach ($vault in $vaults)
{
Set-AzRecoveryServicesVaultContext -Vault $vault
Get-AzRecoveryServicesVault |Select-Object "Name","ResourceGroupName","Location","SubscritptionId" | Export-Csv "C:\RSV-Report.csv" -NoTypeInformation -Encoding ASCII -Append
}
}
这会返回如下输出:
它没有返回所有资源的订阅 ID。
但是,当我使用此代码调用单个订阅和单个资源组时:
Set-AzContext -SubscriptionId 77a74465-c065-4108-b270-********
Get-AzRecoveryServicesVault | Select-Object "Name","ResourceGroupName","Location","SubscriptionId" | Export-Csv "C:\report1.csv" -NoTypeInformation -Append
我得到了完美的输出:
我希望输出看起来与单个订阅和单个资源组的输出相同。
我需要上述输出的帮助,并且我还想要获取订阅名称列。 我试图在上述代码中的 select-object 中传递订阅名称,但它在订阅名称列的行中提供了空白条目。
如果有人可以帮助我,我想提前感谢。
我是 powershell 新手,我一直在努力解决这个问题。
【问题讨论】:
标签: azure powershell for-loop scripting azure-powershell