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

Azure Windows Server 2019数据中心虚拟机规模集上Az.Accounts模块缺失问题求助

解决自托管VMSS代理池Az模块初始化失败的问题

我来帮你梳理下几个可能的原因和对应的解决步骤——毕竟我也碰到过类似的自托管代理模块加载问题:

1. 模块安装路径的权限或上下文不匹配

微软托管的windows-2019代理默认配置了合适的权限和模块路径,而你的自托管VMSS代理可能存在以下问题:

  • 如果你用默认参数安装模块,它会被放到当前用户的模块目录(比如C:\Users\<代理运行账户>\Documents\WindowsPowerShell\Modules),但自托管代理通常以NT SERVICE\VSTSAgent系统账户运行,无法访问普通用户目录的模块。
  • 解决办法:
    • 安装模块时指定-Scope AllUsers,让所有用户都能访问模块(需要管理员权限,记得在Azure PowerShell任务里勾选「Run as administrator」):
      Install-Module -Name Az.Accounts -RequiredVersion 1.6.2 -Force -Scope AllUsers
      Install-Module -Name "AzureAD" -Force -Scope AllUsers
      
    • 或者给代理服务账户授予模块安装目录的读写权限。

2. 代理进程未加载新安装的模块

自托管代理是长期运行的Windows服务,其PowerShell会话在启动时就加载了模块路径列表。新安装的模块不会自动被当前会话识别,这也是错误提示里要求「重启Azure Pipelines任务代理」的原因:

  • 解决办法:
    • 在安装模块后,添加重启代理服务的步骤(要确保VMSS的所有实例都执行这个操作):
      Restart-Service vstsagent.* -Force
      
    • 或者在安装后手动将模块路径添加到当前会话的环境变量,再强制导入模块:
      $env:PSModulePath += ";C:\Program Files\WindowsPowerShell\Modules"
      Import-Module Az.Accounts -RequiredVersion 1.6.2 -Force
      

3. PowerShell执行策略限制

你的VMSS代理可能设置了严格的PowerShell执行策略(比如Restricted),阻止加载已安装的模块,而托管代理默认是RemoteSigned:

  • 解决办法:在代理初始化脚本或任务中添加执行策略配置:
    Set-ExecutionPolicy RemoteSigned -Force -Scope LocalMachine
    

4. 旧模块版本冲突或缓存问题

如果你的VMSS代理之前安装过其他版本的Az模块,可能导致版本冲突,让系统无法找到指定版本的Az.Accounts:

  • 解决办法:安装前先卸载所有旧版本,再重新安装:
    Uninstall-Module Az.Accounts -AllVersions -Force -ErrorAction SilentlyContinue
    Install-Module -Name Az.Accounts -RequiredVersion 1.6.2 -Force -Scope AllUsers
    

为什么微软托管代理能正常运行?

微软托管的windows-2019代理是一次性的:每次任务都会启动全新的虚拟机实例,预配置了合适的权限、执行策略和模块路径,任务结束后实例就被销毁。这种「无状态」的环境不会遇到自托管代理的持久化会话、权限或缓存问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 16:17:28