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

如何通过PowerShell调用AZ CLI正确检查资源组是否存在锁?

解决Azure资源组锁存在性检查的问题

问题核心:az lock list返回空数组[]时,PowerShell会将其视为非空对象,直接用!($lock)判断会出现逻辑错误。以下是几种可靠的检查方式:

方式一:转换为PowerShell对象后检查元素数量

将Azure CLI输出的JSON转为PowerShell对象,通过判断对象数量来确定是否存在锁:

$lock = az lock list --resource-group my-rg | ConvertFrom-Json
if ($lock.Count -eq 0) {
    Write-Output "添加资源组锁 ** "
    az lock create --lock-type CanNotDelete -n lock-my-rg -g my-rg
}

方式二:直接校验原始JSON输出

不转换对象,直接判断输出内容是否为空白数组(注意去除可能的空格):

$lockOutput = az lock list --resource-group my-rg
if ($lockOutput.Trim() -eq "[]") {
    Write-Output "添加资源组锁 ** "
    az lock create --lock-type CanNotDelete -n lock-my-rg -g my-rg
}

方式三:精准检查指定锁(更高效)

不用列出所有锁,直接通过az lock show检查目标锁是否存在,利用命令的返回状态判断:

try {
    # 成功时无输出,失败时抛出错误
    az lock show --name lock-my-rg --resource-group my-rg --output none
    Write-Output "锁已存在"
} catch {
    Write-Output "添加资源组锁 ** "
    az lock create --lock-type CanNotDelete -n lock-my-rg -g my-rg
}

内容的提问来源于stack exchange,提问作者learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 23:21:10