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

使用Windows 2019自托管代理运行Azure DevOps多阶段YAML时遇Az.Accounts模块缺失错误

问题根源与解决方法

核心问题1:任务类型不匹配

你使用的AzurePowerShell@5任务是为PowerShell的Az模块设计的,会优先依赖Az模块完成身份验证,但你执行的却是AZ CLI命令(az webapp...)。即使安装了AZ CLI,该任务仍会尝试加载指定版本的Az.Accounts模块,从而触发报错。

核心问题2:Az模块版本不匹配

你执行Install-Module -Name Az -Scope AllUsers安装的是最新版Az模块,但任务指定的是5.1.1版本,最新版的Az.Accounts版本远高于5.1.1,导致任务找不到对应版本的模块。


具体解决步骤

方法一:改用适配AZ CLI的任务

将AzurePowerShell@5替换为AzureCLI@2任务,该任务专门用于执行AZ CLI命令,无需依赖Az模块:

- task: AzureCLI@2
  displayName: 'Disconnect DEV Function App'
  inputs:
    azureSubscription: '$(DEVAzureSvcCon)'
    scriptType: 'pscore'
    scriptLocation: 'inlineScript'
    inlineScript: 'az webapp deployment source delete --resource-group $(DEVResourceGroup) --name $(DEVFunctionAppName)'
    failOnStandardError: true

方法二:修正AzurePowerShell任务配置(若坚持使用该任务)

  1. 安装指定版本的Az模块:
    在代理服务器上打开与代理服务同位数的PowerShell(代理默认用32位,可打开C:\Windows\SysWOW64\WindowsPowerShell\v1.0\powershell.exe),以管理员身份执行:
    Install-Module -Name Az.Accounts -RequiredVersion 5.1.1 -Scope AllUsers -Force
    Install-Module -Name Az -RequiredVersion 5.1.1 -Scope AllUsers -Force
    
  2. 重启Azure Pipelines代理服务:
    在代理服务器的服务列表中找到Azure Pipelines Agent服务,右键选择重启,确保代理加载新安装的模块。
  3. 验证模块安装:
    在同位数的PowerShell中执行以下命令,确认指定版本的模块存在:
    Get-Module -ListAvailable Az.Accounts | Where-Object Version -eq '5.1.1'
    

额外注意事项

  • 自托管代理默认使用32位PowerShell,若手动安装模块时用的是64位PowerShell,代理可能无法找到模块,需确保安装环境位数一致。
  • 检查代理服务运行账户的权限,确保该账户能访问C:\Program Files\WindowsPowerShell\Modules(AllUsers范围模块的安装路径)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:26:28