In December, Microsoft released version 1.0.0 of the new Az Module. Az is a cross-platform PowerShell module to manage resources in Azure that is compatible with both WindowsPowerShell and PowerShell Core.
Why to migrate to Az?
Az is written from ground up in .NET Standard which allows us to use the module in PowerShell Core on Windows, MacOs or Linux platforms. It is the “new” module, all further functionality will be added to the Az module whereas AzureRM will only receive bug fixes.
How to migrate?
Scripts that use the previous AzureRM module won’t automatically work with Az. You can enable a compatibility mode to the AzureRM module using the Enable-AzureRmAlias
cmdlet. This allows you to soft migrate existing scripts. Be sure to only enable the mode if you have uninstalled all versions of AzureRM! You can disable the compatiblity mode after you migrated all your scripts using the Disable-AzureRmAlias
cmdlet.
You can also have both modules installed at the same time. In this case, don’t enable the compatibility mode! Instead, explicitly import either the Az or the AzureRM modules inside your scripts.
However, It is recommended to uninstall the old AzureRM module before using Az module:
Uninstall the AzureRM module
You can check whether you have any AzureRM module installed using the following cmdlet:
Get-Module -Name AzureRM -ListAvailable |
To uninstall the module you can run the Uninstall-AzureRM
cmdlet in an elevated PowerShell prompt.
You may get an error that the term Uninstall-AzureRM is not recognized as the name of a cmdlet:
Uninstall-AzureRM : The term ‘Uninstall-AzureRM’ 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.
In this case, try to find and uninstall “Azure PowerShell” through the Windows system (Start -> Settings -> Apps, or appwiz.cpl
). If this also doesn’t work, check this article: Uninstall the AzureRM module
Install the Az Azure PowerShell module
To install the module run the following cmdlet in an elevated session:
Install-Module -Name Az -AllowClobber |
Just Enter ‘Y’ – Yes or ‘A’ – Yes to All to continue.
You can verify the installation using:
Get-InstalledModule -Name Az -AllVersions |
Use the new Az module
To use the new Az module, you first have to sign in using the Connect-AzAccount
cmdlet. The interactive login now uses the device login so you have to copy and paste the token into https://aka.ms/devicelogin.
Once you have signed in to an Azure account, you can use the new cmdlets to access and manage your Azrue resoruces. Use Get-Command -Module Az*
command to retrieve all available Az cmdlets:
About the Author:
Cloud Solution Architect, Head of Cloud Development and Operations at white duck.
Reference:
Brandl, M. (2018). How to migrate Azure PowerShell from AzureRM to the new Az Module. Available at: https://about-azure.com/2018/12/21/how-to-migrate-azure-powershell-from-azurerm-to-the-new-az-module/ [Accessed 31 January 2019]