Code Quality Rank: L2
Programming language: C#
License: GNU General Public License v3.0 or later
Latest version: v9.2.0

Azure PowerShell alternatives and similar packages

Based on the "SDK and API Clients" category.
Alternatively, view Azure PowerShell alternatives based on common mentions on social networks and blogs.

Do you think we are missing an alternative of Azure PowerShell or a related project?

Add another 'SDK and API Clients' Package


[AzureIcon] [PowershellIcon] Microsoft Azure PowerShell

This repository contains PowerShell cmdlets for developers and administrators to develop, deploy, administer, and manage Microsoft Azure resources.

The Az PowerShell module is preinstalled in Azure Cloud Shell.


The following table contains a list of the Azure PowerShell rollup modules.

Description Module Name PowerShell Gallery Link
Azure PowerShell Az Az
Azure PowerShell with preview modules AzPreview AzPreview

For a complete list of the modules found in this repository, see [Azure PowerShell Modules][AzurePowerShellModules].


PowerShell Gallery

Run the following command in a PowerShell session to install the Az PowerShell module:

Install-Module -Name Az -Scope CurrentUser -Repository PSGallery -Force

The latest version of PowerShell 7 is the recommended version of PowerShell for use with the Az PowerShell module on all platforms including Windows, Linux, and macOS. This module also runs on Windows PowerShell 5.1 with .NET Framework 4.7.2 or higher.

The Az module replaces AzureRM. You should not install Az side-by-side with AzureRM.

If you have an earlier version of the Azure PowerShell module installed from the PowerShell Gallery and would like to update to the latest version, run the following command in a PowerShell session:

Update-Module -Name Az -Scope CurrentUser -Force

Update-Module installs the new version side-by-side with previous versions. It does not uninstall the previous versions.

For more information on installing Azure PowerShell, see the installation guide.


Log into Azure

To connect to Azure, use the Connect-AzAccount cmdlet:

# Opens a new browser window to log into your Azure account.

# Log in with a previously created service principal. Use the application ID as the username, and the secret as password.
$Credential = Get-Credential
Connect-AzAccount -ServicePrincipal -Credential $Credential -TenantId $TenantId

To log into a specific cloud (AzureChinaCloud, AzureCloud, AzureUSGovernment), use the Environment parameter:

# Log into a specific cloud, for example the Azure China cloud.
Connect-AzAccount -Environment AzureChinaCloud

Session context

A session context persists login information across Azure PowerShell modules and PowerShell instances. Use the Get-AzContext cmdlet to view the context you are using in the current session. The results contain the Azure tenant and subscription.

# Get the Azure PowerShell context for the current PowerShell session

# Lists all available Azure PowerShell contexts in the current PowerShell session
Get-AzContext -ListAvailable

To get the subscriptions in a tenant, use the Get-AzSubscription cmdlet:

# Get all of the Azure subscriptions in your current Azure tenant

# Get all of the Azure subscriptions in a specific Azure tenant
Get-AzSubscription -TenantId $TenantId

To change the subscription that you are using for your current context, use the Set-AzContext cmdlet:

# Set the Azure PowerShell context to a specific Azure subscription
Set-AzContext -Subscription $SubscriptionName -Name 'MyContext'

# Set the Azure PowerShell context using piping
Get-AzSubscription -SubscriptionName $SubscriptionName | Set-AzContext -Name 'MyContext'

For details on Azure PowerShell contexts, see Azure PowerShell context objects.

Discovering cmdlets

Use Get-Command to discover cmdlets within a specific module, or cmdlets that follow a specific search pattern:

# List all cmdlets in the Az.Accounts module
Get-Command -Module Az.Accounts

# List all cmdlets that contain VirtualNetwork in their name
Get-Command -Name '*VirtualNetwork*'

# List all cmdlets that contain VM in their name in the Az.Compute module
Get-Command -Module Az.Compute -Name '*VM*'

Cmdlet help and examples

To view the help content for a cmdlet, use the Get-Help cmdlet:

# View basic help information for Get-AzSubscription
Get-Help -Name Get-AzSubscription

# View the examples for Get-AzSubscription
Get-Help -Name Get-AzSubscription -Examples

# View the full help for Get-AzSubscription
Get-Help -Name Get-AzSubscription -Full

# View the online version of the help from https://learn.microsoft.com for Get-AzSubscription
Get-Help -Name Get-AzSubscription -Online

For detailed instructions on using Azure PowerShell, see the getting started guide.

Reporting Issues and Feedback


If you find any bugs when using Azure PowerShell, file an issue in our GitHub repo. Fill out the issue template with the appropriate information.

Alternatively, see Azure Community Support if you have issues with Azure PowerShell or Azure services.


If there is a feature you would like to see in Azure PowerShell, use the Send-Feedback cmdlet, or file an issue in our GitHub repo.

Contribute Code

If you would like to become a contributor to this project, see the instructions provided in Microsoft Azure Projects Contribution Guidelines.

Additional information about contributing to this repository can be found in [CONTRIBUTING.md][Contributing] and the [Azure PowerShell Developer Guide][DeveloperGuide].


Azure PowerShell collects telemetry data by default. Microsoft aggregates collected data to identify patterns of usage to identify common issues and to improve the experience of Azure PowerShell. Microsoft Azure PowerShell does not collect any private or personal data. For example, the usage data helps identify issues such as cmdlets with low success and helps prioritize our work. While we appreciate the insights this data provides, we also understand that not everyone wants to send usage data. You can disable data collection with the Disable-AzDataCollection cmdlet. To learn more, see our privacy statement.

Learn More

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact [email protected] with any additional questions or comments.

<!-- References -->

<!-- Local -->

<!-- External -->

<!-- Docs -->