用于下载 Azure 推荐的 Powershell 脚本

Powershell Script to download Azure recommendations

Login-AzAccount

$subs= az account list --query '[*].id'
Get-AzAdvisorRecommendation list --subscription $subs

我需要使用 Powershell 脚本为将有多个订阅的租户下载 Azure 建议列表

Get-AzAdvisorRecommendation list --subscription $subs

您需要将 -subscription 作为参数传递给 Get-AzAdvisorRecommendation cmdlet,而不是 --subscription

根据 Azure PowerShell cmdlet 文档,Cmdlet Get-AzAdvisorRecommendation 没有任何标志 -subscription 作为参数。

您可以使用下面的脚本为特定租户下的所有订阅提取 azure 顾问建议。

$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

这里是示例输出以供参考:

在我们的本地环境中测试上述脚本时,我们使用 -subscriptionId 标志将单个订阅传递给 cmdlet Get-azsubscription

使用这个更新的脚本,我也可以下载推荐,感谢 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