如何导入PowerShell模块以供管道任务使用

如何导入PowerShell模块以供管道任务使用,powershell,azure-devops,Powershell,Azure Devops,我正在Azure DevOps中创建一个构建管道。我有一个PowerShell任务,它调用文件中的脚本-它不是“内联”PowerShell。该脚本需要Az.Accounts模块,因此我添加了Import模块Az.Accounts。当我运行管道时,我得到以下信息: Import-Module : The specified module 'Az.Accounts' was not loaded because no valid module file was found in any module

我正在Azure DevOps中创建一个构建管道。我有一个PowerShell任务,它调用文件中的脚本-它不是“内联”PowerShell。该脚本需要
Az.Accounts
模块,因此我添加了
Import模块Az.Accounts
。当我运行管道时,我得到以下信息:

Import-Module : The specified module 'Az.Accounts' was not loaded because no valid module file was found in any module 
directory.
At D:\a\1\s\XXX\XXX\XXX.ps1:14 char:1
+ Import-Module Az.Accounts
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ResourceUnavailable: (Az.Accounts:String) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : Modules_ModuleNotFound,Microsoft.PowerShell.Commands.ImportModuleCommand

如何添加缺少的模块以便脚本可以运行?

托管代理没有安装
Az
模块——它们安装了较旧的
AzureRM
模块


您应该能够使用
安装模块
安装它们。或者,您可以重写脚本以使用
AzureRM

默认情况下,托管的windows代理只包括AzureRM模块,该模块较旧。使用Az模块,Azure PowerShell现在与windows上的PowerShell 5.1和PowerShell Core 6.x以及所有受支持平台(包括windows、macOS、,这是最大也是最重要的变化

您可以添加用于安装
Az.Accounts
模块的内嵌powershell任务

请注意,如果不在脚本中添加
-force
参数,您将在过程中获得此信息

User declined to install module (Az.Accounts).

在将Azure Devops与托管的windows-2019映像一起使用时,我建议您使用版本为@4或更高的“AzurePowerShell”任务,而不是普通的“PowerShell”任务

。向下滚动查看与版本控制相关的选项

语法和参数几乎与PowerShell任务相同,只是您不再需要登录Azure(您在参数中提供了服务连接)

你不需要做一些疯狂的事情,比如安装Az模块或卸载AzureRM。如果您使用AzurePowerShell任务,它将对您可用


注意:不要在同一脚本中使用Az命令和AzureMR(已弃用)命令。

您使用的是托管代理还是专用代理?这是Windows代理上的托管VS2019。