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

如何用Azure CLI查询租户内名称第三位为Y的所有VM?

解决Azure租户内跨订阅筛选名称第三位为'Y'的VM问题

核心问题拆解

  1. 原命令仅作用于当前激活的订阅,无法覆盖租户内所有订阅
  2. 若当前订阅无符合条件的VM,查询会返回空列表;另外shell环境中,单引号嵌套可能导致JMESPath查询解析异常

实现方案

通过遍历租户所有订阅,逐个执行VM筛选查询,以下是两种主流环境的脚本示例:

Bash 脚本

# 获取租户下所有订阅ID(纯文本格式)
subscriptions=$(az account list --query "[].id" -o tsv)

# 循环遍历每个订阅,查询符合条件的VM
for sub in $subscriptions; do
    echo "=== 订阅ID: $sub ==="
    # 用双引号包裹查询语句,避免shell解析单引号出错
    az vm list --subscription "$sub" --output table --query "[?name[2] == 'Y']"
done

PowerShell 脚本

# 获取租户下所有订阅ID
$subscriptions = az account list --query "[].id" -o tsv

# 遍历订阅执行查询
foreach ($sub in $subscriptions) {
    Write-Host "=== 订阅ID: $sub ==="
    az vm list --subscription $sub --output table --query "[?name[2] == 'Y']"
}

关键说明

  • 确保已登录Azure CLI并拥有租户内所有订阅的读取权限
  • JMESPath索引从0开始,name[2]对应名称的第三位字符,逻辑正确
  • 若需要合并所有结果为统一输出,可将每个订阅的查询结果写入文件,或调整输出格式为JSON后合并

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 16:13:14