Azure DevOps流水线因Az.Accounts模块更新失败求助
解决Azure DevOps流水线Az.Accounts版本冲突问题
问题描述
此前正常运行的Azure DevOps流水线,因Az.Accounts模块更新出现如下报错:
Write-Error: This module requires Az.Accounts version 2.19.0. An earlier version of
Az.Accounts is imported in the current PowerShell session. Please open a new
session before importing this module. This error could indicate that multiple
incompatible versions of the Azure PowerShell cmdlets are installed on your
system. Please see https://aka.ms/azps-version-error for troubleshooting
information.
尝试通过以下脚本卸载旧版并安装2.19.0版本,但未解决问题:
$desiredVersion = "2.19.0" $installedModule = Get-InstalledModule -Name "Az.Accounts" -ErrorAction SilentlyContinue Write-Output "$($installedModule)" if ($installedModule) { if ($installedModule.Version.ToString() -ne $desiredVersion) { Uninstall-Module -Name "Az.Accounts" -Force -ErrorAction SilentlyContinue Install-Module -Name "Az.Accounts" -RequiredVersion $desiredVersion -Force -AllowClobber -Scope CurrentUser -Repository PSGallery } } else { Install-Module -Name "Az.Accounts" -RequiredVersion $desiredVersion -Force -AllowClobber -Scope CurrentUser -Repository PSGallery } Import-Module Az.Accounts
解决方案
1. 彻底清理所有Az.Accounts版本后重装
原脚本仅卸载单个版本,系统中可能残留多版本模块。修改脚本先移除所有已安装的Az.Accounts版本,再安装指定版本:
$desiredVersion = "2.19.0" # 卸载所有已安装的Az.Accounts版本 Get-InstalledModule -Name "Az.Accounts" -AllVersions -ErrorAction SilentlyContinue | Uninstall-Module -Force -ErrorAction SilentlyContinue # 安装指定版本 Install-Module -Name "Az.Accounts" -RequiredVersion $desiredVersion -Force -AllowClobber -Scope CurrentUser -Repository PSGallery # 强制导入指定版本模块 Import-Module Az.Accounts -RequiredVersion $desiredVersion -Force
2. 启动独立PowerShell会话执行操作
报错核心是当前会话已导入旧版本模块,无法在同一会话内替换。通过启动新会话隔离模块操作:
$desiredVersion = "2.19.0" $scriptContent = @" # 卸载所有Az.Accounts版本 Get-InstalledModule -Name 'Az.Accounts' -AllVersions -ErrorAction SilentlyContinue | Uninstall-Module -Force -ErrorAction SilentlyContinue # 安装指定版本 Install-Module -Name 'Az.Accounts' -RequiredVersion '$desiredVersion' -Force -AllowClobber -Scope CurrentUser -Repository PSGallery # 导入指定版本 Import-Module Az.Accounts -RequiredVersion '$desiredVersion' -Force "@ # 启动新PowerShell会话执行脚本 Start-Process powershell.exe -ArgumentList "-NoProfile -Command $scriptContent" -Wait -NoNewWindow
3. 使用Azure DevOps内置Azure PowerShell任务
直接借助流水线的Azure PowerShell任务自动处理版本依赖:
- 在流水线中添加
Azure PowerShell任务 - 在任务设置的
Azure PowerShell version选项中,选择Specify version,输入与Az.Accounts 2.19.0匹配的Az主模块版本(例如Az 10.3.0包含Az.Accounts 2.19.0) - 该任务会自动隔离模块环境,避免会话内版本冲突
4. 清理自托管代理的模块缓存
如果使用自托管代理,需清理本地模块缓存:
- 登录代理服务器,删除
C:\Users\<代理运行账户>\Documents\WindowsPowerShell\Modules\Az.Accounts下的所有版本文件夹 - 重启代理服务后重新运行流水线
内容的提问来源于stack exchange,提问作者Ayanda ezekiel
相关产品推荐
相关产品推荐

