Azure DevOps:无法识别 Powershell 'Get-AzSubscription'

Azure DevOps: Powershell 'Get-AzSubscription' is not recognized

我正在使用 Azure PowerShell 从 azure DevOps 部署一个 ARM 模板,如下所示。

这是订阅级部署。我遇到错误。

The term 'Get-AzSubscription' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

Install-Module -Name Az -AllowClobber -Scope CurrentUser
Import-Module Az
$context = Get-AzSubscription -SubscriptionId xxxxxxxx
Set-AzContext $context


New-azdeployment -Name "SKL" -Location westeurope -TemplateFile .\delegatedResourceManagement.json -TemplateParameterFile .\delegatedResourceManagement.parameters.json

日志:

##[section]Starting: Azure PowerShell script: InlineScript
==============================================================================
Task         : Azure PowerShell
Description  : Run a PowerShell script within an Azure environment
Version      : 3.153.0
Author       : Microsoft Corporation
Help         : https://docs.microsoft.com/azure/devops/pipelines/tasks/deploy/azure-powershell
==============================================================================
##[command]Import-Module -Name C:\Modules\azurerm_6.7.0\AzureRM.7.0\AzureRM.psd1 -Global
##[command]Clear-AzureRmContext -Scope Process
##[command]Disable-AzureRmContextAutosave -ErrorAction Stop
##[command]Add-AzureRMAccount -ServicePrincipal -Tenant *** -Credential System.Management.Automation.PSCredential -Environment AzureCloud @processScope
##[command] Select-AzureRMSubscription -SubscriptionId xxxxxxx -TenantId ***
##[command]& 'd:\a\_temp\xxxxxxd.ps1' 
##[warning]User declined to install module (Az).
##[error]The specified module 'Az' was not loaded because no valid module file was found in any module directory.
##[command]Disconnect-AzureRmAccount -Scope Process -ErrorAction Stop
##[command]Clear-AzureRmContext -Scope Process -ErrorAction Stop
##[error]The term 'Get-AzSubscription' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
##[section]Finishing: Azure PowerShell script: InlineScript

您需要指定任务版本:4.* (Preview) 或更高版本才能使用 Az powershell 模块:

还有一个Azure resource group deployment可以轻松部署ARM模板:

看起来所有 az 模块都太混乱了,MSFT 已经弄乱了 az new/old 模块并且相互冲突。 az account show 将使用 AZ CLI 列出所有模块

az account show
  1. 搜索应用程序和功能 - 卸载旧的 2018 年 4 月版 Azure
  2. 关注这样的事情linkhttps://blog.atwork.at/post/The-new-Azure-PowerShell-Az-module

那么

就没有问题了
Get-AzSubscription   ( after using Connect)