如何通过PowerShell/AZ CLI查看并分配Azure Policy Initiative到管理组?
Azure Policy Initiative 命令行操作方案
PowerShell 操作步骤
查看Initiative定义
Get-AzPolicyDefinition仅用于单个策略查询,要查看Initiative(策略集)需使用Get-AzPolicySetDefinition:
- 列出所有Initiative(含自定义及默认):
Get-AzPolicySetDefinition | ForEach-Object { $_.Properties.DisplayName }
- 筛选特定自定义Initiative:
# 按显示名称查找 Get-AzPolicySetDefinition | Where-Object { $_.Properties.DisplayName -eq "你的自定义Initiative名称" } # 按资源ID精准查找 Get-AzPolicySetDefinition -Id "/providers/Microsoft.Management/managementGroups/你的管理组ID/providers/Microsoft.Authorization/policySetDefinitions/你的InitiativeID"
分配自定义Initiative到管理组
通过New-AzPolicyAssignment完成分配,指定管理组作为范围:
# 获取目标Initiative定义 $targetInitiative = Get-AzPolicySetDefinition -Name "你的自定义Initiative名称" # 创建分配 New-AzPolicyAssignment -Name "Initiative分配的显示名称" ` -PolicySetDefinition $targetInitiative ` -Scope "/providers/Microsoft.Management/managementGroups/你的管理组ID"
AZ CLI 操作步骤
查看Initiative定义
对应命令为az policy set-definition:
- 列出所有Initiative:
az policy set-definition list --query "[].displayName" -o table
- 查找特定自定义Initiative:
# 按名称查询详情 az policy set-definition show --name "你的自定义Initiative名称" # 按管理组范围列出自定义Initiative az policy set-definition list --management-group "你的管理组ID" --query "[].displayName" -o table
分配自定义Initiative到管理组
使用az policy assignment create命令:
az policy assignment create --name "Initiative分配的显示名称" \ --policy-set-definition "你的自定义Initiative名称" \ --scope "/providers/Microsoft.Management/managementGroups/你的管理组ID"
内容的提问来源于stack exchange,提问作者Maytham Fahmi
相关产品推荐
相关产品推荐

