• 3 min read

Azure PowerShell 3.0.0–Highlights and breaking changes

Azure PowerShell is a set of PowerShell cmdlets for managing your assets in Azure using Azure Resource Manager (ARM) and Azure Service Management (RDFE). Azure PowerShell 3.0.0 adds various improvements and fixes across multiple Azure resources.

Azure PowerShell is a set of PowerShell cmdlets which assist you in managing your assets in Azure using Azure Resource Manager (ARM) and Azure Service Management (RDFE).  Azure PowerShell 3.0.0 adds various improvements and fixes across multiple Azure resources; however, in accordance with semantic versioning, the introduction of a new major revision indicates breaking changes in a small subset of our cmdlets.  You can install the cmdlets via your favorite installation path indicated in the Azure PowerShell 3.0.0 release notes.

Resource improvements

ApiManagement

  • Enable support of Importing and Exporting SOAP based APIs (Wsdl Format)

    • Import-AzureRmApiManagementApi
    • Export-AzureRmApiManagementApi
  • Deprecated cmdlet Set-AzureRmApiManagementVirtualNetworks. In place, place used cmdlet Update-AzureRmApiManagementDeployment
  • Enabled support for ARM based VNETs for configuration Vpn via cmdlet Update-AzureRmApiManagementDeployment
  • Introduced support for VpnType (None, External, Internal) to differentiate ApiManagement workloads for Internet and Intranet
  • Fixed PowerShell issues

Batch

  • Added new cmdlet for reactivating tasks

    • Enable-AzureBatchTask
  • Added new parameter for application packages on job manager tasks and cloud tasks
    • New-AzureBatchTask -ApplicationPackageReferences
  • Added new parameters for job auto termination
    • New-AzureBatchJob -OnAllTasksComplete -OnTaskFailure
    • New-AzureBatchJob -ExitConditions

ExpressRoute

  • Added new parameter service key in return object when provider list all cross connection

    • Get-AzureCrossConnectionCommand

MachineLearning

  • Get-AzureRmMlWebService supports paginated response
  • Remind user Get-AzureRmMlWebService “Name” parameter needs to work with “ResourceGroupName” parameter

Network

  • Added new cmdlet to get application gateway backend health

    • Get-AzureRmApplicationGatewayBackendHealth
  • Added support for creating UltraPerformance sku
    • New-AzureRmVirtualNetworkGateway -GatewaySku
    • New-AzureVirtualNetworkGateway -GatewaySku

RemoteApp

  • Added cmdlets to enable User Disk and Gold Image Migration feature

    • Export-AzureRemoteAppUserDisk
    • Export-AzureRemoteAppTemplateImage

SiteRecovery

  • New cmdlets have been added to support one to one mapping with service objects.

    • Get-AzureRmSiteRecoveryFabric
    • Get-AzureRmSiteRecoveryProtectableItem
    • Get-AzureRmSiteRecoveryProtectionContainerMapping
    • Get-AzureRmSiteRecoveryRecoveryPoin
    • Get-AzureRmSiteRecoveryReplicationProtectedItem
    • Get-AzureRmSiteRecoveryServicesProvider
    • New-AzureRmSiteRecoveryFabri
    • New-AzureRmSiteRecoveryProtectionContainerMapping
    • New-AzureRmSiteRecoveryReplicationProtectedItem
    • Remove-AzureRmSiteRecoveryFabric
    • Remove-AzureRmSiteRecoveryProtectionContainerMapping
    • Remove-AzureRmSiteRecoveryReplicationProtectedItem
    • Remove-AzureRmSiteRecoveryServicesProvider
    • Set-AzureRmSiteRecoveryReplicationProtectedItem
    • Start-AzureRmSiteRecoveryApplyRecoveryPoint
    • Update-AzureRmSiteRecoveryServicesProvider
  • Following cmdlets have been modified for to support one to one mapping with service objects.
    • Edit-AzureRmSiteRecoveryRecoveryPlan
    • Get-AzureRmSiteRecoveryNetwork
    • Get-AzureRmSiteRecoveryNetworkMapping
    • Get-AzureRmSiteRecoveryProtectionContainer
    • Get-AzureRmSiteRecoveryStorageClassification
    • Get-AzureRmSiteRecoveryStorageClassificationMapping
    • Start-AzureRmSiteRecoveryCommitFailoverJob
    • Start-AzureRmSiteRecoveryPlannedFailoverJob
    • Start-AzureRmSiteRecoveryTestFailoverJob
    • Start-AzureRmSiteRecoveryUnplannedFailoverJob
    • Update-AzureRmSiteRecoveryProtectionDirection
    • Update-AzureRmSiteRecoveryRecoveryPlan
  • HUB support added to Set-AzureRmSiteRecoveryReplicationProtectedItem.
  • Deprecation warning introduced for cmlets/parameter-sets which does not comply to SiteRecovery service object model.

Breaking changes

Data Lake Store

The following cmdlets were affected this release (PR 2965):

Get-AzureRmDataLakeStoreItemAcl (Get-AdlStoreItemAcl)

  • This cmdlet was removed and replaced with Get-AzureRmDataLakeStoreItemAclEntry (Get-AdlStoreItemAclEntry).
  • The old cmdlet returned a complex object representing the access control list (ACL). The new cmdlet returns a simple list of entries in the chosen path's ACL.
# Old
Get-AdlStoreItemAcl -Account myadlsaccount -Path /foo

# New
Get-AdlStoreItemAclEntry -Account myadlsaccount -Path /foo

Get-AzureRmDataLakeStoreItemAclEntry (Get-AdlStoreItemAclEntry)

  • This cmdlet replaces the old cmdlet Get-AzureRmDataLakeStoreItemAcl (Get-AdlStoreItemAcl).
  • This new cmdlet returns a simple list of entries in the chosen path's ACL, with type DataLakeStoreItemAce[].
  • The output of this cmdlet can be passed in to the -Acl parameter of the following cmdlets:
    • Remove-AzureRmDataLakeStoreItemAcl
    • Set-AzureRmDataLakeStoreItemAcl
    • Set-AzureRmDataLakeStoreItemAclEntry
# Old
Get-AdlStoreItemAcl -Account myadlsaccount -Path /foo

# New
Get-AdlStoreItemAclEntry -Account myadlsaccount -Path /foo

Remove-AzureRmDataLakeStoreItemAcl (Remove-AdlStoreItemAcl), Set-AzureRmDataLakeStoreItemAcl (Set-AdlStoreItemAcl), Set-AzureRmDataLakeStoreItemAclEntry (Set-AdlStoreItemAclEntry)

  • These cmdlets now accept DataLakeStoreItemAce[] for the -Acl parameter.
  • DataLakeStoreItemAce[] is returned by Get-AzureRmDataLakeStoreItemAclEntry (Get-AdlStoreItemAclEntry).
# Old
$acl = Get-AdlStoreItemAcl -Account myadlsaccount -Path /foo
Set-AdlStoreItemAcl -Account myadlsaccount -Path /foo -Acl $acl

# New
$aclEntries = Get-AdlStoreItemAclEntry -Account myadlsaccount -Path /foo
Set-AdlStoreItemAcl -Account myadlsaccount -Path /foo -Acl $aclEntries

ApiManagement

The following cmdlets were affected this release (PR 2971):

New-AzureRmApiManagementVirtualNetwork

  • The required parameters to reference a virtual network changed from requiring SubnetName and VnetId to SubnetResourceId in format/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ClassicNetwork/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}
# Old
$virtualNetwork = New-AzureRmApiManagementVirtualNetwork -Location  -SubnetName  -VnetId 

# New
$virtualNetwork = New-AzureRmApiManagementVirtualNetwork -Location  -SubnetResourceId 

Deprecating Cmdlet Set-AzureRmApiManagementVirtualNetworks

  • The Cmdlet is getting deprecated as there was more than one way to Set Virtual Network associated to ApiManagement deployment.
# Old
$networksList = @()
$networksList += New-AzureRmApiManagementVirtualNetwork -Location $vnetLocation -VnetId $vnetId -SubnetName $subnetName
Set-AzureRmApiManagementVirtualNetworks -ResourceGroupName "ContosoGroup" -Name "ContosoApi" -VirtualNetworks $networksList

# New
$masterRegionVirtualNetwork = New-AzureRmApiManagementVirtualNetwork -Location  -SubnetResourceId 
Update-AzureRmApiManagementDeployment -ResourceGroupName "ContosoGroup" -Name "ContosoApi" -VirtualNetwork $masterRegionVirtualNetwork

Network

The following cmdlets were affected this release (PR 2982):

New-AzureRmVirtualNetworkGateway

  • Description of what has changed :- Bool parameter:-ActiveActive is removed and SwitchParameter:-EnableActiveActiveFeature is added for enabling Active-Active feature on newly creating virtual network gateway.
# Old 
# Sample of how the cmdlet was previously called
New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -Location $location -IpConfigurations $vnetIpConfig1,$vnetIpConfig2 -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -GatewaySku HighPerformance -ActiveActive $true

# New
# Sample of how the cmdlet should now be called
New-AzureRmVirtualNetworkGateway -ResourceGroupName $rgname -name $rname -Location $location -IpConfigurations $vnetIpConfig1,$vnetIpConfig2 -GatewayType Vpn -VpnType RouteBased -EnableBgp $false -GatewaySku HighPerformance -EnableActiveActiveFeature

Set-AzureRmVirtualNetworkGateway

  • Description of what has changed :- Bool parameter:-ActiveActive is removed and 2 SwitchParameters:-EnableActiveActiveFeature / DisableActiveActiveFeature are added for enabling and disabling Active-Active feature on virtual network gateway.
# Old
# Sample of how the cmdlet was previously called
Set-AzureRmVirtualNetworkGateway -VirtualNetworkGateway $gw -ActiveActive $true
Set-AzureRmVirtualNetworkGateway -VirtualNetworkGateway $gw -ActiveActive $false  

# New
# Sample of how the cmdlet should now be called
Set-AzureRmVirtualNetworkGateway -VirtualNetworkGateway $gw -EnableActiveActiveFeature
Set-AzureRmVirtualNetworkGateway -VirtualNetworkGateway $gw -DisableActiveActiveFeature