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

Azure自动化无运行方式账户时如何通过系统分配身份连接Az模块

问题修复方案

错误根因

报错由两个核心问题触发:

  1. 托管身份登录逻辑存在缺陷,未适配Azure云环境配置,登录完成后无有效订阅上下文,导致后续Azure资源调用提示未登录
  2. 系统分配身份未授予目标存储账户的对应操作权限,Get-AzStorageAccountKey返回空结果,触发空数组索引报错

修复步骤

1. 前置权限配置

在Azure门户中为自动化账户的系统分配身份授予权限:

  • 定位到目标存储账户/所属资源组,进入「访问控制(IAM)」页面
  • 新增角色分配,选择存储账户密钥操作员或者参与者角色,分配对象选择自动化账户的系统分配托管身份,保存后等待权限生效

2. 调整PowerShell代码

修复后的完整代码如下:

# 适配中国区Azure环境,若使用公有云可删除-Environment参数
Connect-AzAccount -Identity -Environment AzureChinaCloud | Out-Null

# 显式指定目标订阅ID(替换为实际的订阅ID)
Set-AzContext -SubscriptionId "替换为你的订阅ID" | Out-Null

$storageaccountname = "stgacct"
$resourcegroupname = "RSG1"

# 增加空值判断避免索引报错
$storageKeys = Get-AzStorageAccountKey -ResourceGroupName $resourcegroupname -AccountName $storageaccountname -ErrorAction SilentlyContinue
if ($null -ne $storageKeys) {
    $acctKey = $storageKeys.Value[0]
    # 后续业务逻辑写在此处
} else {
    Write-Error "无法获取存储账户密钥,请检查权限配置"
}

额外注意事项

  • 请确认自动化账户的Az模块版本:Az.Accounts >= 2.12.0,Az.Storage >= 4.10.0,过低版本存在托管身份兼容性问题
  • 若使用其他Azure云环境(如美国政府云、德国云),需对应调整-Environment参数的取值

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 12:51:00