What is Azure PowerShell?
Azure PowerShell is a set of cmdlets for managing Azure resources directly from PowerShell. Azure PowerShell is designed to make it easy to learn and get started with, but provides powerful features for automation.
The Az PowerShell module
The Az PowerShell module is the recommended PowerShell module for managing Azure resources on all platforms.
The Az PowerShell module is based on the .NET Standard, and works with PowerShell 7.2 or higher on all platforms including Windows, Linux, and macOS. It's also compatible with Windows PowerShell 5.1.
PowerShell 7.2 or higher is the recommended version of PowerShell for use with the Az PowerShell module on all platforms.
You can install the Az PowerShell module locally on Windows, Linux, and macOS. It can also be used from a browser through Azure Cloud Shell or inside a Docker container. For more information, see the Azure PowerShell documentation.
Azure PowerShell supports several authentication methods. For detailed information about authenticating to Azure from the Az PowerShell module, see Sign in with Azure PowerShell.
The Az PowerShell module is a wrapper module for Azure service related PowerShell modules, usually
one module per Azure service such as
Az.Network for Azure networking services and
Azure Kubernetes Service.
The cmdlets in the Az PowerShell module make REST calls to the Azure API. Breaking changes in the Az PowerShell module are limited to twice a year. Many breaking changes at the API level are handled within the cmdlets to prevent the perception of a breaking change.
The Az PowerShell module contains cmdlets for performing both control plane and data plane operations in Azure. You use the control plane to manage resources in your subscription. You use the data plane to use capabilities exposed by your instance of a resource type. For more information, see Azure control plane and data plane.
The cmdlets in the Az PowerShell module produce .NET objects. As with any PowerShell command that produces output, the cmdlets in the Az PowerShell module can be piped to the Get-Member cmdlet to determine what type of object is produced along with a list of the available properties and methods. For more information, see Query output of Azure PowerShell and Format Azure PowerShell cmdlet output.
The AzureAD and MSOnline PowerShell modules aren't part of the Az PowerShell module. For more information about those modules, see the documentation for Azure Active Directory PowerShell for Graph.
Legacy Azure PowerShell modules
The AzureRM PowerShell module
The AzureRM PowerShell module will retire on 29 February 2024. For more information, see Migrate Azure PowerShell from AzureRM to Az.
Retirement indicates that the AzureRM PowerShell module will be deprecated, subsequently ceasing to receive support. While this does not inherently mean the module will stop functioning, its use beyond 29 February 2024 will be at the user's discretion and risk, as it will no longer be maintained or updated.
The AzureRM PowerShell module is no longer recommended as deprecation has been announced, new features are no longer being added, and it's not cross platform. For more information, see Overview of the AzureRM PowerShell module.
The Azure PowerShell module
The cmdlets in the Azure PowerShell module are for managing legacy Azure resources that use Service Management APIs.
Some cmdlets in the Azure PowerShell module have been deprecated and others have been deprecated for new customers with retirement announced for existing customers as noted on their corresponding reference documentation pages. For more information, see Overview of the Azure PowerShell Service Management module