Connect to Azure Stack with PowerShell as a user

Applies to: Azure Stack integrated systems and Azure Stack Development Kit

You can connect to Azure Stack with PowerShell to manage Azure Stack resources. For example, you can use PowerShell to subscribe to offers, create virtual machines (VMs), and deploy Azure Resource Manager templates.

To get setup:

  • Make sure you have the requirements.
  • Connect with Azure Active Directory (Azure AD) or Active Directory Federation Services (AD FS).
  • Register resource providers.
  • Test your connectivity.

Prerequisites to connecting with PowerShell

Configure these prerequisites from the development kit, or from a Windows-based external client if you're connected through VPN:

Make sure you replace the following script variables with values from your Azure Stack configuration:

  • Azure AD tenant name
    The name of your Azure AD tenant used to manage Azure Stack. For example, yourdirectory.onmicrosoft.com.
  • Azure Resource Manager endpoint
    For Azure Stack development kit, this value is set to https://management.local.azurestack.external. To get this value for Azure Stack integrated systems, contact your service provider.

Connect to Azure Stack with Azure AD

    Add-AzureRMEnvironment -Name "AzureStackUser" -ArmEndpoint "https://management.local.azurestack.external"
    # Set your tenant name
    $AuthEndpoint = (Get-AzureRmEnvironment -Name "AzureStackUser").ActiveDirectoryAuthority.TrimEnd('/')
    $AADTenantName = "<myDirectoryTenantName>.onmicrosoft.com"
    $TenantId = (invoke-restmethod "$($AuthEndpoint)/$($AADTenantName)/.well-known/openid-configuration").issuer.TrimEnd('/').Split('/')[-1]

    # After signing in to your environment, Azure Stack cmdlets
    # can be easily targeted at your Azure Stack instance.
    Add-AzureRmAccount -EnvironmentName "AzureStackUser" -TenantId $TenantId

Connect to Azure Stack with AD FS

# Register an Azure Resource Manager environment that targets your Azure Stack instance
Add-AzureRMEnvironment -Name "AzureStackUser" -ArmEndpoint "https://management.local.azurestack.external"

# Sign in to your environment
Login-AzureRmAccount -EnvironmentName "AzureStackUser"

Register resource providers

Resource providers aren't automatically registered for new user subscriptions that don't have any resources deployed through the portal. You can explicitly register a resource provider by running the following script:

foreach($s in (Get-AzureRmSubscription)) {
        Select-AzureRmSubscription -SubscriptionId $s.SubscriptionId | Out-Null
        Write-Progress $($s.SubscriptionId + " : " + $s.SubscriptionName)
Get-AzureRmResourceProvider -ListAvailable | Register-AzureRmResourceProvider
    }

Test the connectivity

When you've got everything setup, test connectivity by using PowerShell to create resources in Azure Stack. As a test, create a resource group for an application and add a VM. Run the following command to create a resource group named "MyResourceGroup":

New-AzureRmResourceGroup -Name "MyResourceGroup" -Location "Local"

Next steps