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
You can now run the Azure CLI with the az command from either Windows Command Prompt or PowerShell.
Azure CLI task. Use this task to run a shell or batch script containing Azure CLI commands against an Azure subscription. This task is used to run Azure CLI commands on cross-platform agents running on Linux, macOS, or Windows operating systems.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With