I want to create a Powershell script which executes some AzureRm...
commands and follows those up with some Az
commands. Reason being that some commands are only available via Az
.
When trying to execute these scripts in a release pipeline, the script always fails with the following error:
ERROR: Please run 'az login' to setup account.
Executing the Az
commands in a Azure CLI
task work as expected, because Az Login
is executed by the task.
I don't want to pass the secret required to login to the script if at all possible. I would rather fall back to separating the scripts into two steps in the pipeline.
Is it possible to use the Az
commands within a Azure Powershell
task without passing the secrets manually?
Azure PowerShell
az account show
The short term solution I already had in place was passing the ServicePrincipal information into the powershell script and executing az login
manually (same as Bevan's answer below).
My long term solution was to replace all Azure CLI calls with "Az Powershell" commands. Luckily, most commands are available by now.
A couple of commands don't have an equivalent commandlet. But if they are available via ARM, you can figure out an alternative command with Powershell.
Many of them involve using New-AzResource/New-AzureRmResource
or Invoke-AzResourceAction/Invoke-AzureRmResourceAction
# AzureCLI
az cosmosdb list-keys
# Powershell:
$keys = Invoke-AzResourceAction -Action listKeys `
-ResourceType "Microsoft.DocumentDb/databaseAccounts" -ApiVersion "2015-04-08" `
-ResourceGroupName $resourceGroupName -Name $accountName