0

我在 Azure DevOps 中运行自托管 Windows 代理。我已经安装了 PowerShell Core 6.2.3,并且作为管理员安装了 Az 模块,以便所有用户都可以使用它。

当我使用 Azure PowerShell 任务 (V4) 运行构建时 - 标记为“使用 PowerShell 核心”和 Azure PowerShell 的“最新版本”,我收到以下消息:

==============================================================================
Task         : Azure PowerShell
Description  : Run a PowerShell script within an Azure environment
Version      : 4.159.3
Author       : Microsoft Corporation
Help         : [Learn more about this task](https://go.microsoft.com/fwlink/?LinkID=613749)
==============================================================================
Added TLS 1.2 in session.
Disconnect-AzureRmAccount -Scope Process -ErrorAction Stop
##[warning]Run Connect-AzureRmAccount to login.
##[error]Could not find the modules: 'Az.Accounts' with Version: ''. If the module was recently installed, retry after restarting the Azure Pipelines task agent.

如果我在托管代理上运行脚本,它工作正常。我无法弄清楚它为什么会失败。我认为它在构建代理运行的配置文件或环境中有所不同 - 但我不确定如何检查这一点。

如果我打开 PSCore 窗口并运行,则在构建代理上:

Get-Module Az -ListAvailable

它正确地找到了模块。

4

1 回答 1

0

DevOps 代理很可能以其他用户身份运行,并且尚未为该用户安装 Az 模块。假设代理作为服务运行,您可以通过运行检查用户services.msc并查找“Azure Pipelines Agent”、“VSTS Agent”或“vstsagent.[orgname].[agentname]”[1]。

运行Get-Module Az -ListAvailable以查看模块的安装位置。C:\Program Files\PowerShell\Modules已为所有用户 [2] 安装了下面的模块。

您可以为所有用户安装模块:

Install-Module -Name Az -Scope AllUsers

[1] https://docs.microsoft.com/en-us/azure/devops/pipelines/agents/v2-windows?view=azure-devops#run-as-a-service

[2] https://docs.microsoft.com/en-us/powershell/module/powershellget/install-module?view=powershell-7.1#parameters

于 2021-03-26T16:19:38.397 回答