Configuring Connectivity with Windows Azure PowerShell Cmdlets

I’ve been noticing an increasing level of confusion about how to set up connectivity between Windows Azure and a person’s machine using the Windows Azure PowerShell cmdlets.  I’d like to try to set a few things straight.

It seems that nearly all the tutorials, examples, and quick starts on using the Windows Azure PowerShell cmdlets start with one command:


I view this is a convenience command.  Executing the command will do the following:

  1. Opens a browser window to  You’ll authenticate with your Microsoft Account.
  2. You’ll be prompted to download and save a .publishsettings file.  The .publishsettings file contains a list of all subscriptions for which your Microsoft Account is an admin or co-admin, as well as a base64 encoded management certificate.
  3. Windows Azure will automatically associate the newly created management certificate with every subscription for which your Microsoft Account is an admin or co-admin.

With the .publishsettings file you can execute the Import-AzurePublishSettingsFile command to configure connectivity between your machine, the Windows Azure PowerShell cmdlets, and Windows Azure.  This same file can also be imported into Visual Studio to configure connectivity between Visual Studio and Windows Azure.

Import-AzurePublishSettingsFile <subscription1-subscription2>.publishsettings


I’ve noticed some people repeatedly following step 1 in the many tutorials and quick starts – repeatedly executing Get-AzurePublishSettingsFile.  There is really no need to follow those same steps each time.  In fact, it’s probably a bad thing (to do each time).  Instead, manually configure the connectivity between your machine and Windows Azure.  If you already have a management certificate on your machine and in the Windows Azure subscription you want to manage, you can use that certificate (instead of one created by Get-AzurePublishSettingsFile).  You just need to write a few more lines of PowerShell, such as the following:

$subscriptionName = ‘<SUBSCRIPTION_NAME>’
$subscriptionId = ‘<SUBSCRIPTION_ID>’
$mgmtCert = Get-Item cert:\\CurrentUser\My\$thumbprint

# Configure the subscription details in the Windows Azure PowerShell cmdlets
Set-AzureSubscriptionSubscriptionName $subscriptionName SubscriptionId $subscriptionId Certificate $mgmtCert

# Make the default
Set-AzureSubscriptionDefaultSubscription $subscriptionName

# Configure the subscription to use the storage account
Set-AzureSubscriptionSubscriptionName $subscriptionName CurrentStorageAccount ‘mystorageaccount’


Personally this is the approach I use nearly all the time.  It’s a little more work, but I gain more control over the subscriptions that I’m managing using either PowerShell or Visual Studio.  I hope this helps to clear up some confusion on how to configure your machine to work with Windows Azure.

5 thoughts on “Configuring Connectivity with Windows Azure PowerShell Cmdlets

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.