You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Policy 如何检查initiative是否存在并实现不存在则创建

操作前置准备
  • 先安装Azure PowerShell的Az模块,未安装的话执行命令:Install-Module -Name Az -AllowClobber -Scope CurrentUser
  • 执行Connect-AzAccount登录Azure账号,再切换到目标订阅:Set-AzContext -SubscriptionId "你的订阅ID"
实现逻辑与可直接运行的示例代码

核心逻辑非常简单:先查询指定名称的策略倡议(initiative,官方正式名称为策略集定义)是否存在,不存在就执行新建操作,存在则直接跳过。

# 1. 自定义参数,根据你的实际需求修改对应值即可
$initiativeName = "你要校验的倡议唯一名称"
$initiativeDisplayName = "倡议对外展示的名称"
$initiativeDescription = "倡议的功能描述"
# 此处填入需要加入该倡议的策略规则,示例为内置的允许位置策略,替换为你自己的策略ID和参数即可
$policyDefinitions = @(
    @{
        policyDefinitionId = "/providers/Microsoft.Authorization/policyDefinitions/0a914e76-4921-4c19-b460-a2d36003525a"
        parameters = @{}
    }
)
$initiativeLocation = "global" # 策略倡议默认是全局资源,固定填global即可

# 2. 检查目标倡议是否存在
$existingInitiative = Get-AzPolicySetDefinition -Name $initiativeName -ErrorAction SilentlyContinue

# 3. 不存在则新建,存在则跳过
if ($null -eq $existingInitiative) {
    Write-Host "目标倡议不存在,开始创建..."
    New-AzPolicySetDefinition `
        -Name $initiativeName `
        -DisplayName $initiativeDisplayName `
        -Description $initiativeDescription `
        -PolicyDefinition $policyDefinitions `
        -Location $initiativeLocation
    Write-Host "倡议创建完成"
} else {
    Write-Host "目标倡议已存在,不执行任何操作"
}
注意事项
  • 如果需要在管理组级别创建倡议,查询和新建的命令都需要额外添加-ManagementGroupName "你的管理组名称"参数
  • 如果倡议需要配置自定义参数,调用New-AzPolicySetDefinition时新增-Parameter参数传入对应的参数定义即可
  • 建议所有参数先在测试环境验证通过后再应用到生产环境,避免生成无效资源

内容的提问来源于stack exchange,提问作者Dave Gaitan Escobar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 05:06:03