Microsoft Azure PowerShell
This repository contains a set of PowerShell cmdlets for developers and administrators to develop, deploy and manage Microsoft Azure applications.
- For documentation on how to build and deploy applications to Microsoft Azure please see the Microsoft Azure Documentation Center.
- For comprehensive documentation on the developer cmdlets see the overview of Azure PowerShell.
- For suggesting improvements, join our improvement discussion (Issue #3692).
- Account management
- Login with Microsoft account, Organizational account, or Service Principal through Microsoft Azure Active Directory
- Save Credentials to disk with Save-AzureRmContext and load saved credentials using Import-AzureRmContext
- Get the different out-of-box Microsoft Azure environments
- Add/Set/Remove customized environments (like your Azure Stack or Windows Azure Pack environments)
- Management and data plane cmdlets for Azure services in ARM and RDFE
- Virtual Machine
- App Service (Websites)
- SQL Database
For detail descriptions and examples of the cmdlets, type
Get-Help Azureto get all of the Azure PowerShell cmdlets.
Get-Help AzureRMto get all of the Azure Resource Manager (ARM) cmdlets.
Get-Help <cmdlet name>to get the details of a specific cmdlet.
Using Azure PowerShell
In general, follow these steps to start using Microsoft Azure PowerShell
- Get yourself authenticated with Microsoft Azure. For details, please check out this article.
- Use the cmdlets
The first step can be different for the possible environments you could be targeting. The following are detailed instructions for each supported environment.
If you use both mechanisms on the same subscription, Microsoft Azure Active Directory authentication always wins. If you want to go back to management certificate authentication, please use
Remove-AzureAccount, which will remove the Microsoft Azure Active Directory information and bring management certificate authentication back in.
Login directly from PowerShell (Microsoft Azure Active Directory authentication)
# Interactive login - you will get a dialog box asking for your Azure credentials Add-AzureRmAccount # Non-interactive login - use service principals Add-AzureRmAccount -ServicePrincipal -ApplicationId "http://my-app" -Credential $pscredential -TenantId $tenantid # Use the cmdlets to manage your services/applications New-AzureRmResourceGroup -Name myresourceGroup -Location "West US"
Microsoft Azure China
Add-AzureRmAccount -EnvironmentName AzureChinaCloud # Use the cmdlets to manage your services/applications New-AzureRmResourceGroup -Name myresourceGroup -Location "China East"
Microsoft Azure US Government
Add-AzureRmAccount -EnvironmentName AzureUSGovernment # Use the cmdlets to manage your services/applications New-AzureRmResourceGroup -Name myresourceGroup -Location "US Gov Virginia"
Microsoft Azure Germany
Add-AzureRmAccount -EnvironmentName AzureGermanCloud # Use the cmdlets to manage your services/applications New-AzureRmResourceGroup -Name myresourceGroup -Location "Germany Central"
Windows Azure Pack
# Add your Windows Azure Pack environment to your Microsoft Azure PowerShell installation. # You will need to know the following information of your Windows Azure Pack environment. # 1. URL to download the publish settings file Mandatory # 2. Management service endpoint Optional # 3. Management Portal URL Optional # 4. Storage service endpoint Optional Add-WAPackEnvironment -Name "MyWAPackEnv" ` -PublishSettingsFileUrl "URL to download the publish settings file>" ` -ServiceEndpoint "<Management service endpoint>" ` -ManagementPortalUrl "<Storage service endpoint>" ` -StorageEndpoint "<Management Portal URL>" # Download a file which contains the publish settings information of your subscription. # Use the -Environment parameter to target your Windows Azure Pack environment. # This will open a browser window and ask you to log in to get the file. Get-WAPackPublishSettingsFile -Environment "MyWAPackEnv" # Import the file you just downloaded. # Notice that the file contains credential of your subscription so you don't want to make it public # (like check in to source control, etc.). Import-WAPackPublishSettingsFile "<file location>" # Use the cmdlets to manage your services/applications New-WAPackWebsite -Name mywebsite
Find Your Way
All the cmdlets can be put into 3 categories:
- ARM management cmdlets use the
AzureRmprefix (New-AzureRmResourceGroup, Get-AzureRmVM)
- Legacy RDFE management cmdlets use the
- Data plane cmdlets that work in ARM or RDFE use the
You can use the following cmdlet to find out all the cmdlets for your environment
# Return all the cmdlets for Azure Resource Manager (ARM) Get-Command *AzureRm* # Return all the cmdlets for Microsoft Azure Get-Command *Azure* # Return all the cmdlets for Windows Azure Pack Get-Command *WAPack*
If you want to migrate some scripts from Microsoft Azure to Windows Azure Pack or vice versa, as long as the cmdlets you are using are in category 1, you should be able to migrate smoothly.
Be sure to check out the Azure Support Community if you have trouble with the provided code.
Contribute Code or Provide Feedback
If you would like to become an active contributor to this project please follow the instructions provided in Microsoft Azure Projects Contribution Guidelines.
If you encounter any bugs with the library please file an issue in the issues section section of the project.