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

如何使用Azure CLI为指定资源组内所有虚拟机分配标签

Azure CLI脚本:为特定资源组内的虚拟机批量分配标签

我帮你完善并整理了符合需求的Azure CLI脚本,同时拆解了每个步骤的作用,方便你根据实际场景调整:

# 1. 通过服务主体登录Azure
az login \
  --service-principal \
  --username "$service_principal_ID" \
  --password "$service_principal_password" \
  --tenant "$tenant_ID"

# 2. 切换到目标订阅
az account set --subscription "$subID"

# 3. 为指定资源组内的所有虚拟机分配标签
# 注意:默认是合并现有标签,如果需要替换所有标签,添加 --operation Replace 参数
az resource tag \
  --resource-group "$rg" \
  --tags "project=$project" "owner=$owner" "environment=$env" \
  --resource-type "Microsoft.Compute/virtualMachines" \
  --output table

关键步骤说明:

  • 服务主体登录:这里用--service-principal指定登录方式,--username对应服务主体的客户端ID,--password是服务主体的密钥,--tenant是你的Azure租户ID。记得提前把这些变量替换成实际值,或者通过环境变量注入。
  • 切换订阅:确保后续所有资源操作都限定在你指定的$subID订阅内,避免误操作其他订阅的资源。
  • 分配标签:
    • --resource-group明确指定要操作的资源组范围,避免影响其他资源组的VM;
    • --tags采用键=值的格式,多个标签用空格分隔;
    • --resource-type精准定位到虚拟机资源类型,确保只给VM打标签;
    • --output table让输出更易读,你也可以换成tsv、json等格式适配自动化场景;
    • 如果需要完全替换VM上已有的标签(而不是合并),在命令末尾添加--operation Replace即可。

注意事项:

  • 确保你的服务主体拥有目标资源组的Tag Contributor或Contributor权限,否则会出现权限不足的错误;
  • 所有变量(比如$service_principal_ID、$rg等)都需要提前定义,或者直接替换成实际的字符串值;
  • 如果资源组内没有虚拟机,脚本不会执行任何操作,也不会报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:32:05