用于下载 Azure 建议的 Powershell 脚本

问题描述 投票:0回答:3
Login-AzAccount

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

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

azure powershell azure-powershell
3个回答
0
投票

获取-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
的单个订阅。


0
投票

使用此更新的脚本,我也可以下载建议,感谢 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

0
投票

剧本写得很好!很有帮助

我想知道如何重命名标题 例如:ResourceName 而不是 ImpactedValues,

同样需要过滤选项标签(azure Advisor门户页面顶部),例如:业务服务和价值: 基于此过滤器,将生成报告。

powershell中我们需要使用过滤器的模块是什么:标签

© www.soinside.com 2019 - 2024. All rights reserved.