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

GitHub Action中PowerShell Az模块加载失败及Azure连接报错问题

解决GitHub Action中PowerShell调用Azure Key Vault的Az模块加载问题

问题概述

在GitHub Action的PowerShell脚本中,已执行Install-Module -Name Az -scope currentuser -force -AllowClobber和Import-Module Az,但调用Connect-AzAccount时提示Az.Accounts模块无法加载,手动导入该模块又报错Assembly with same name is already loaded,无法完成Azure服务主体登录及Key Vault信息拉取。

解决方案

1. 改用GitHub Action官方Azure登录动作(推荐)

GitHub Action提供官方azure/login动作,无需手动安装/管理Az模块,彻底规避版本冲突和加载问题:

- name: Azure Login
  uses: azure/login@v1
  with:
    creds: ${{ secrets.AZURE_CREDENTIALS }}

其中AZURE_CREDENTIALS是存储在GitHub Secrets中的服务主体JSON,格式示例:

{
  "clientId": "你的应用ID",
  "clientSecret": "你的服务主体密码",
  "tenantId": "你的租户ID"
}

完成登录后可直接调用Az模块命令,无需手动导入。

2. 手动管理Az模块的调整方案

若必须在PowerShell脚本内处理模块,按以下步骤修改:

  • 先清理环境中残留的Az模块:
Uninstall-Module -Name Az -AllVersions -Force -ErrorAction SilentlyContinue
Uninstall-Module -Name Az.Accounts -AllVersions -Force -ErrorAction SilentlyContinue
  • 指定稳定版本安装Az模块,避免兼容问题:
Install-Module -Name Az -RequiredVersion 9.6.0 -Scope CurrentUser -Force -AllowClobber
  • 强制导入指定版本的模块:
Import-Module Az -RequiredVersion 9.6.0 -Force -ErrorAction Stop
  • 执行服务主体登录:
$TenantID = "你的租户ID"
$securePassword = "你的服务主体密码" | ConvertTo-SecureString -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential("你的应用ID", $securePassword)
Connect-AzAccount -ServicePrincipal -Credential $credential -Tenant $TenantID

3. 规避Runner预装模块冲突

GitHub托管Runner可能预装旧版Az模块,导致与手动安装的版本冲突。可先移除预装模块的加载路径,再导入手动安装的版本:

# 移除预装模块的路径
$env:PSModulePath = ($env:PSModulePath -split ';' | Where-Object { $_ -notlike "*Program Files\WindowsPowerShell\Modules*" }) -join ';'
# 强制导入手动安装的模块
Import-Module Az -Force

问题根因

出现Assembly with same name is already loaded错误,是因为GitHub Runner环境预装了Az.Accounts模块,手动安装的新版本模块与预装版本的程序集名称重复,导致加载冲突。官方azure/login动作会自动处理模块环境,从根源避免这类问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 23:45:39