如何用PowerShell获取租户内所有Azure策略分配的显示名称及作用域?
获取租户内所有Azure策略分配的显示名称及作用域
你看到的GUID是策略分配的系统生成名称,门户里显示的策略名称来自对应的策略定义,而策略分配本身也有显示名称和作用域属性。用以下PowerShell代码可以获取你需要的信息:
1. 先登录Azure账号
Connect-AzAccount -Tenant <你的租户ID或域名>
如果已经登录过可跳过这一步。
2. 获取所有策略分配及关联信息
Get-AzPolicyAssignment -All | ForEach-Object { # 获取对应的策略定义 $policyDefinition = Get-AzPolicyDefinition -Id $_.PolicyDefinitionId # 构造自定义输出对象 [PSCustomObject]@{ 策略分配显示名称 = $_.DisplayName 策略定义显示名称 = $policyDefinition.DisplayName 策略分配作用域 = $_.Scope 策略分配ID = $_.Id } } | Format-Table -AutoSize
3. 可选:导出到CSV文件
如果需要保存结果到本地文件,用下面的命令:
Get-AzPolicyAssignment -All | ForEach-Object { $policyDefinition = Get-AzPolicyDefinition -Id $_.PolicyDefinitionId [PSCustomObject]@{ 策略分配显示名称 = $_.DisplayName 策略定义显示名称 = $policyDefinition.DisplayName 策略分配作用域 = $_.Scope 策略分配ID = $_.Id } } | Export-Csv -Path "Azure租户策略分配列表.csv" -NoTypeInformation -Encoding UTF8
关键参数说明
-All:必加参数,确保拉取租户内所有作用域(管理组、订阅、资源组等)的策略分配,默认仅返回当前订阅的内容。$_.PolicyDefinitionId:通过策略分配的ID关联到对应的策略定义,从而获取门户显示的策略名称。$_.Scope:直接返回策略分配的作用域路径,可清晰看到该策略作用于哪个管理组、订阅或资源组。
内容的提问来源于stack exchange,提问作者learner
相关产品推荐
相关产品推荐

