如何在PowerShell中获取Azure策略计划的根定义信息?
在PowerShell中获取Azure策略计划(Initiative)的根定义
核心概念澄清
Get-AzPolicySetDefinition本身就是用来获取策略计划根定义的cmdlet,并非仅返回已分配的策略——你之前的误解可能混淆了「策略计划定义」和「策略分配」:前者是根定义(对应门户里的「查看定义」内容),后者是将定义分配到特定范围的实例。
具体操作方法
获取所有策略计划定义
直接执行不带过滤参数的命令,会返回所有内置和自定义的策略计划根定义:Get-AzPolicySetDefinition精准定位特定策略计划
如果你知道目标策略计划的显示名称或唯一名称,可通过以下参数筛选:- 按显示名称查找:
Get-AzPolicySetDefinition -DisplayName "你的策略计划显示名称" - 按唯一名称(标识符)查找:
Get-AzPolicySetDefinition -Name "策略计划的唯一名称" - 仅查看自定义策略计划(你自己创建的):
Get-AzPolicySetDefinition -Custom - 仅查看微软内置的策略计划:
Get-AzPolicySetDefinition -BuiltIn
- 按显示名称查找:
查看完整定义内容
要看到和门户「查看定义」一致的详细结构(包含策略列表、参数、规则等),可将结果转为JSON格式:# 获取目标策略计划对象 $initiative = Get-AzPolicySetDefinition -DisplayName "示例策略计划" # 输出完整定义内容 $initiative.Properties | ConvertTo-Json -Depth 10从已分配的策略计划关联到根定义
如果你手里只有已分配的策略实例,可先获取分配信息,再通过关联ID拿到根定义:# 获取已分配的策略计划实例 $assignment = Get-AzPolicyAssignment -Name "你的策略分配名称" # 通过分配关联的ID获取根定义 $initiativeDefinition = Get-AzPolicySetDefinition -Id $assignment.Properties.PolicySetDefinitionId # 查看详细定义 $initiativeDefinition.Properties | ConvertTo-Json -Depth 10
内容的提问来源于stack exchange,提问作者Dan Potter
相关产品推荐
相关产品推荐

