Login-AzAccount
$subs= az account list --query '[*].id'
Get-AzAdvisorRecommendation list --subscription $subs
我需要下载有关将使用 Powershell 脚本进行多个订阅的租户的 Azure 建议列表
获取-AzAdvisor推荐列表 --订阅 $subs
您需要将 -subscription 作为参数传递给 Get-AzAdvisorRecommendation
cmdlet,而不是
--subscription。
根据 Azure PowerShell cmdlet 文档,Cmdlet
Get-AzAdvisorRecommendation
没有任何标志 -subscription
作为参数。
您可以使用下面的脚本为特定租户下的所有订阅提取 Azure Advisor 建议。
$list=@()
$sub=get-azsubscription
Write-Output $sub
foreach( $item in $sub){
Set-AzContext -Subscription $item.Id -Tenant $item.TenantId -Force
$rg=Get-AzResourceGroup
foreach($r in $rg){
$list+=Get-AzAdvisorRecommendation -ResourceGroupName $r.ResourceGroupName
}
}
$list | Export-Csv C:\Users\list.csv
以下是示例输出供参考:
在本地环境中测试上述脚本时,我们使用
Get-azsubscription
标志传递了对 cmdlet -subscriptionId
的单个订阅。
使用此更新的脚本,我也可以下载建议,感谢 Venkatesh 的输入。
Login-AzAccount
$result= 'C:\Users\new.csv'
$list=@()
$subs=get-AzSubscription
foreach( $sub in $subs){
Set-AzContext -Subscription $sub.Id -Force
$list+=Get-AzAdvisorRecommendation | Select-Object category, Impact, @{Name="SubscriptionName"; Expression={$sub.name}}, @{Name="SubscriptionID";
Expression={$sub.Id}}, @{Name="Recommendation"; Expression=$_.ShortDescription.Problem}}, ImpactedField, ImpactedValue,RecommendationTypeId, LastUpdated, MetaData, SuppressionId, Name,
resourceid
}
$list | Export-Csv $result -NoTypeInformation
剧本写得很好!很有帮助
我想知道如何重命名标题 例如:ResourceName 而不是 ImpactedValues,
同样需要过滤选项标签(azure Advisor门户页面顶部),例如:业务服务和价值: 基于此过滤器,将生成报告。
powershell中我们需要使用过滤器的模块是什么:标签