Icke-bakåtkompatibla ändringar för Az 1.0.0

I det här dokumentet finns detaljerad information om ändringar mellan AzureRM 6.x och den nya Az-modulen, version 1.x och senare. Innehållsförteckningen leder dig genom en fullständig migrering, inklusive modulspecifika ändringar som kan påverka skripten.

Allmänna råd om hur du kommer igång med en migrering från AzureRM till Az finns i Starta migrering från AzureRM till Az.

Viktigt!

Vi har infört icke-bakåtkompatibla ändringar mellan Az 1.0.0 och Az 2.0.0 också. När du har följt den guiden om hur du uppdaterar från AzureRM till Az kan du läsa om icke-bakåtkompatibla ändringar för Az 2.0.0 att ta reda på om du behöver göra ytterligare ändringar.

Innehållsförteckning

Allmänna icke-bakåtkompatibla ändringar

I det här avsnittet beskriver vi de allmänna icke-bakåtkompatibla ändringarna i den nya utformningen av Az-modulen.

Ändringar av substantivprefix i cmdlet

I AzureRM-modulen är de cmdletar som används antingen AzureRM eller Azure som ett substantivprefix. Az förenklar och normaliserar cmdlet-namn så att Az används som cmdlet-substantivprefix för alla cmdletar. Till exempel:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Har ändrats till:

Get-AzVM
Get-AzKeyVaultSecret

För att göra övergången till de nya cmdlet-namnen enklare introduceras två nya cmdletar, Enable-AzureRmAlias och Disable-AzureRmAlias. Enable-AzureRmAlias skapar alias för de äldre cmdlet-namnen i AzureRM till de nyare cmdlet-namnen i Az. Med argumentet -Scope med Enable-AzureRmAlias kan du välja var alias ska aktiveras.

Till exempel kan följande skript i AzureRM:

#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Kan köras med minimala ändringar med Enable-AzureRmAlias:

#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

När Enable-AzureRmAlias -Scope CurrentUser körs kan alias aktiveras för alla PowerShell-sessioner som du öppnar, så när denna cmdlet har körts behöver ett skript som detta inte ändras alls:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

All information om användningen av alias-cmdletar finns i referensmaterialet för Enable-AzureRmAlias.

När du är redo att inaktivera alias tar Disable-AzureRmAlias bort skapade alias. All information finns i referensmaterialet till Disable-AzureRmAlias.

Viktigt!

När du inaktiverar alias ska du se till att de är inaktiverade för alla omfång som har aktiverade alias.

Ändringar av modulnamn

Modulnamnen har ändrats från AzureRM.* till Az.*, förutom följande moduler:

AzureRM-modul Az-modul
Azure.Storage Az.Storage
Azure.AnalysisServices Az.AnalysisServices
AzureRM.Profile Az.Accounts
AzureRM.Insights Az.Monitor
AzureRM.DataFactories Az.DataFactory
AzureRM.DataFactoryV2 Az.DataFactory
AzureRM.RecoveryServices Az.RecoveryServices
AzureRM.RecoveryServices Az.RecoveryServices
AzureRM.Tags Az.Resources
AzureRM.MachineLearningCompute Az.MachineLearning
AzureRM.UsageAggregates Az.Billing
AzureRM.Consumption Az.Billing

Ändringarna i modulnamnen innebär att alla skript som använder #Requires eller Import-Module för att läsa in specifika moduler måste ändras så att de använder den nya modulen i stället. För moduler där cmdletsuffixet inte har ändrats innebär det att även om modulnamnet har ändrats har suffixet som anger åtgärdsutrymmet inte det.

Migrera instruktioner av typen #Requires och Import-Module

Skript som använder #Requires eller Import-Module för att deklarera beroende av AzureRM-moduler måste uppdateras så att de nya modulnamnen används. Till exempel:

#Requires -Module AzureRM.Compute

Ska ändras till:

#Requires -Module Az.Compute

För Import-Module:

Import-Module -Name AzureRM.Compute

Ska ändras till:

Import-Module -Name Az.Compute

Migrera fullständigt kvalificerade cmdlet-anrop

Skript som använder modulkvalificerade cmdlet-anrop som:

AzureRM.Compute\Get-AzureRmVM

Måste ändras så att de nya modul- och cmdlet-namnen används

Az.Compute\Get-AzVM

Migrera modulmanifestberoenden

För moduler som uttrycker beroenden av AzureRM-moduler via en modulmanifestfil (.psd1) behöver modulnamnen uppdateras i avsnittet RequiredModules:

RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})

Måste ändras till:

RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})

Borttagna moduler

Följande moduler har tagits bort:

  • AzureRM.Backup
  • AzureRM.Compute.ManagedService
  • AzureRM.Scheduler

Verktygen för de här tjänsterna stöds inte längre aktivt. Kunderna rekommenderas att övergå till alternativa tjänster så snart som möjligt.

Windows PowerShell 5.1 och .NET 4.7.2

Om Az ska användas med PowerShell 5.1 för Windows måste .NET Framework 4.7.2 vara installerat. För PowerShell Core 6.x och senare krävs inte .NET Framework.

Tillfällig borttagning av användarinloggning med PSCredential

På grund av ändringar i autentiseringsflödet för .NET Standard tar vi tillfälligt bort användarinloggning med PSCredential. Funktionen återintroduceras i version 1/15/2019/ av Windows PowerShell 5.1 för Windows. Det här diskuteras mer ingående i det här GitHub-ärendet.

Inloggning med standardenhetskod i stället för med webbläsarfråga

På grund av ändringar i autentiseringsflödet för .NET Standard använder vi enhetsinloggning som standardinloggningsflöde under interaktiv inloggning. Webbläsarbaserad webbinloggning återintroduceras som standardfunktion i version 1/15/2019 av PowerShell 5.1 för Windows. Då kan användarna välja enhetsinloggning med hjälp av en växlingsparameter.

Icke-bakåtkompatibla ändringar

I det här avsnittet beskriver vi icke-bakåtkompatibla ändringar för enskilda moduler och cmdletar.

Az.ApiManagement (tidigare AzureRM.ApiManagement)

  • Följande cmdletar har tagits bort:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Använd istället cmdleten Set-AzApiManagement för att ställa dessa egenskaper
  • Följande egenskaper har tagits bort:
    • Egenskapen PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration och ScmHostnameConfiguration av typen PsApiManagementHostnameConfiguration har tagits bort från PsApiManagementContext. Använd i stället PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration, ManagementCustomHostnameConfiguration och ScmCustomHostnameConfiguration av typen PsApiManagementCustomHostNameConfiguration.
    • Egenskapen StaticIPs har tagits bort från PsApiManagementContext. Egenskapen har delats upp i PublicIPAddresses och PrivateIPAddresses.
    • Den nödvändiga egenskapen Location har tagits bort från cmdleten New-AzureApiManagementVirtualNetwork.

Az.Billing (tidigare AzureRM.Billing, AzureRM.Consumption och AzureRM.UsageAggregates)

  • Parametern InvoiceName har tagits bort från cmdleten Get-AzConsumptionUsageDetail. Skripten behöver nu använda andra identitetsparametrar för fakturan.

Az.CognitiveServices (tidigare AzureRM.CognitiveServices)

  • Parameteruppsättningen GetSkusWithAccountParamSetName har tagits bort från cmdleten Get-AzCognitiveServicesAccountSkus. Du måste hämta SKU:er efter typ och plats i stället för att använda ResourceGroupName och Account Name.

Az.Compute (tidigare AzureRM.Compute)

  • IdentityIds tas bort från egenskapen Identity i objekten PSVirtualMachine och PSVirtualMachineScaleSet Skripten bör nu inte längre använda värdet för det här fältet för att fatta bearbetningsbeslut.
  • Typ av InstanceView-egenskap för PSVirtualMachineScaleSetVM-objekt ändras från VirtualMachineInstanceView till VirtualMachineScaleSetVMInstanceView
  • Egenskaperna AutoOSUpgradePolicy och AutomaticOSUpgrade tas bort från egenskapen UpgradePolicy
  • Typ av Sku-egenskap i PSSnapshotUpdate-objekt ändras från DiskSku till SnapshotSku
  • VmScaleSetVMParameterSet tas bort från cmdleten Add-AzVMDataDisk, och du kan inte längre lägga till en datadisk individuellt till en virtuell ScaleSet-dator.

Az.DataFactory (tidigare AzureRM.DataFactories och AzureRM.DataFactoryV2)

  • Parametern GatewayName har blivit obligatorisk i cmdleten New-AzDataFactoryEncryptValue
  • Cmdleten New-AzDataFactoryGatewayKey har tagits bort
  • Parametern LinkedServiceName har tagits bort från cmdleten Get-AzDataFactoryV2ActivityRun Skripten ska inte längre använda värdet för det här fältet för att fatta bearbetningsbeslut.

Az.DataLakeAnalytics (tidigare AzureRM.DataLakeAnalytics)

  • Följande inaktuella cmdletar har tagits bort: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret och Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (tidigare AzureRM.DataLakeStore)

  • I följande cmdletar har parametern Encoding ändrats från typen FileSystemCmdletProviderEncoding till System.Text.Encoding. Den här ändringen tar bort kodningsvärdena String och Oem. Övriga tidigare kodningsvärden kvarstår.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Det inaktuella egenskapsaliaset Tags har tagits bort från cmdletarna New-AzDataLakeStoreAccount och Set-AzDataLakeStoreAccount

    Skript som använder

    New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
    

    Ska ändras till

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • De inaktuella egenskaperna Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps har tagits bort från PSDataLakeStoreAccountBasic-objekt. Alla skript som använder den PSDatalakeStoreAccount som returnerades från Get-AzDataLakeStoreAccount ska inte längre referera till dessa egenskaper.

Az.KeyVault (tidigare AzureRM.KeyVault)

  • Egenskapen PurgeDisabled har tagits bort från PSKeyVaultKeyAttributes-, PSKeyVaultKeyIdentityItem- och PSKeyVaultSecretAttributes-objekt Skript ska inte längre referera till egenskapen PurgeDisabled för att fatta bearbetningsbeslut.

Az.Media (tidigare AzureRM.Media)

  • Tog bort inaktuellt egenskapsalias Tags från skript för cmdleten New-AzMediaService med hjälp av

    New-AzureRMMediaService -Tags @{TagName="TagValue"}
    

    Ska ändras till

    New-AzMediaService -Tag @{TagName="TagValue"}
    

Az.Monitor (tidigare AzureRM.Insights)

  • Tog bort pluralnamnet Categories och parametern Timegrains och ersatte med singularparameternamn från cmdlet-skript för Set-AzDiagnosticSetting med hjälp av

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Ska ändras till

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (tidigare AzureRM.Network)

  • Tog bort den inaktuella parametern ResourceId från cmdleten Get-AzServiceEndpointPolicyDefinition
  • Tog bort den inaktuella egenskapen EnableVmProtection från objektet PSVirtualNetwork
  • Tog bort den inaktuella cmdleten Set-AzVirtualNetworkGatewayVpnClientConfig

Skript bör inte längre fatta bearbetningsbeslut baserat på värdena för dessa fält.

Az.OperationalInsights (tidigare AzureRM.OperationalInsights)

  • Standardparameteruppsättningen för Get-AzOperationalInsightsDataSource har tagits bort och ByWorkspaceNameByKind är nu standardparameteruppsättning

    Skript som listar datakällor med hjälp av

    Get-AzureRmOperationalInsightsDataSource
    

    ska ändras så att de anger en typ

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (tidigare AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup och AzureRM.RecoveryServices.SiteRecovery)

  • Parametern Encryption har tagits bort från cmdleten New/Set-AzRecoveryServicesAsrPolicy
  • Parametern TargetStorageAccountName är nu obligatorisk för hanterade diskåterställningar i cmdleten Restore-AzRecoveryServicesBackupItem
  • Tog bort parametrarna StorageAccountName och StorageAccountResourceGroupName i cmdleten Restore-AzRecoveryServicesBackupItem
  • Tog bort parametern Name i cmdleten Get-AzRecoveryServicesBackupContainer

Az.Resources (tidigare AzureRM.Resources)

  • Parametern Sku har tagits bort från cmdleten New/Set-AzPolicyAssignment

  • Parametern Password har tagits bort från cmdleten New-AzADServicePrincipal och New-AzADSpCredential Lösenord genereras automatiskt och skript som tillhandahöll lösenordet:

    New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
    

    Bör ändras så att de hämtar lösenordet från utdata:

    $credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476
    $secPassword = $credential.Secret
    

Az.ServiceFabric (tidigare AzureRM.ServiceFabric)

  • Följande cmdlet-returtyper har ändrats:
    • Egenskapen ServiceTypeHealthPolicies av typen ApplicationHealthPolicy har tagits bort.
    • Egenskapen ApplicationHealthPolicies av typen ClusterUpgradeDeltaHealthPolicy har tagits bort.
    • Egenskapen OverrideUserUpgradePolicy av typen ClusterUpgradePolicy har tagits bort.
    • Dessa ändringar påverkar följande cmdletar:
      • Add-AzServiceFabricClientCertificate
      • Add-AzServiceFabricClusterCertificate
      • Add-AzServiceFabricNode
      • Add-AzServiceFabricNodeType
      • Get-AzServiceFabricCluster
      • Remove-AzServiceFabricClientCertificate
      • Remove-AzServiceFabricClusterCertificate
      • Remove-AzServiceFabricNode
      • Remove-AzServiceFabricNodeType
      • Remove-AzServiceFabricSetting
      • Set-AzServiceFabricSetting
      • Set-AzServiceFabricUpgradeType
      • Update-AzServiceFabricDurability
      • Update-AzServiceFabricReliability

Az.Sql (tidigare AzureRM.Sql)

  • Tog bort parametrarna State och ResourceId från cmdleten Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Följande inaktuella cmdletar har tagits bort: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Tog bort den inaktuella parametern Current från cmdleten Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Tog bort den inaktuella parametern DatabaseName från cmdleten Get-AzSqlServerServiceObjective
  • Tog bort den inaktuella parametern PrivilegedLogin från cmdleten Set-AzSqlDatabaseDataMaskingPolicy

Az.Storage (tidigare Azure.Storage och AzureRM.Storage)

  • Standardparameteruppsättningen har ändrats till OAuthParameterSet för att det ska gå att skapa en Oauth-lagringskontext endast med namnet på lagringskontot
    • Exempel: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Parametern Location har blivit obligatorisk i cmdleten Get-AzStorageUsage
  • Storage-API-metoderna använder nu TAP (uppgiftsbaserat asynkront mönster) i stället för synkrona API-anrop. Följande exempel visar de nya asynkrona kommandona:

Blobögonblicksbild

AzureRM:

$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$b.ICloudBlob.Snapshot()

Az:

$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -Context $ctx
$task = $b.ICloudBlob.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result

Dela ögonblicksbild

AzureRM:

$Share = Get-AzureStorageShare -Name $containerName -Context $ctx
$snapshot = $Share.Snapshot()

Az:

$Share = Get-AzStorageShare -Name $containerName -Context $ctx
$task = $Share.SnapshotAsync()
$task.Wait()
$snapshot = $task.Result

Ångra borttagning av mjukborttagen blob

AzureRM:

$b = Get-AzureStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$b.ICloudBlob.Undelete()

Az:

$b = Get-AzStorageBlob -Container $containerName -Blob $blobName -IncludeDeleted -Context $ctx
$task = $b.ICloudBlob.UndeleteAsync()
$task.Wait()

Ange blobnivå

AzureRM:

$blockBlob = Get-AzureStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$blockBlob.ICloudBlob.SetStandardBlobTier("hot")

$pageBlob = Get-AzureStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$pageBlob.ICloudBlob.SetPremiumBlobTier("P4")

Az:

$blockBlob = Get-AzStorageBlob -Container $containerName -Blob $blockBlobName -Context $ctx
$task = $blockBlob.ICloudBlob.SetStandardBlobTierAsync("hot")
$task.Wait()

$pageBlob = Get-AzStorageBlob -Container $containerName -Blob $pageBlobName -Context $ctx
$task = $pageBlob.ICloudBlob.SetPremiumBlobTierAsync("P4")
$task.Wait()

Az.Websites (tidigare AzureRM.Websites)

  • Inaktuella egenskaper har tagits bort från PSAppServicePlan-, PSCertificate-, PSCloningInfo- och PSSite-objekten