Dela via


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

Det här dokumentet innehåller detaljerad information om ändringarna mellan AzureRM 6.x och den nya Az-modulen version 1.x och senare. Innehållsförteckningen hjälper dig genom en fullständig migreringsväg, inklusive modulspecifika ändringar som kan påverka dina skript.

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.

Viktig

Det har också skett icke-bakåtkompatibla ändringar mellan Az 1.0.0 och Az 2.0.0. När du har följt den här guiden för uppdatering från AzureRM till Az, se Az 2.0.0-kritiska ändringar för att ta reda på om du behöver göra ytterligare ändringar.

Innehållsförteckning

Allmänna ändringar som bryter kompatibilitet

Det här avsnittet detaljerar de allmänna brytande förändringar som ingår i omdesignen av Az-modulen.

Cmdlet-substantivprefixändringar

I AzureRM-modulen använde cmdletar antingen AzureRM eller Azure som substantivprefix. Az förenklar och normaliserar cmdlet-namn, så att alla cmdletar använder "Az" som sitt cmdlet-substantivprefix. Till exempel:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Har ändrats till:

Get-AzVM
Get-AzKeyVaultSecret

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

Till exempel följande skript i AzureRM:

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

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

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

Om du kör Enable-AzureRmAlias -Scope CurrentUser aktiveras aliasen för alla PowerShell-sessioner som du öppnar, så att ett skript som detta inte behöver ändras alls när du har kört den här cmdleten:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Fullständig information om användningen av cmdlet-aliaser finns i Enable-AzureRmAlias i referensen.

När du är redo att inaktivera alias tar Disable-AzureRmAlias bort de skapade aliasen. Fullständig information finns i referensen för Disable-AzureRmAlias.

Viktig

När du inaktiverar alias kontrollerar du att de är inaktiverade för alla omfång där alias tidigare var aktiverade.

Ä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.Backup Az.RecoveryServices
AzureRM.RecoveryServices.SiteRecovery 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 för att använda den nya modulen i stället. För moduler där cmdlet-suffixet inte har ändrats innebär det att även om modulnamnet har ändrats har suffixet som anger åtgärdsutrymmet inte.

Migrera #Requires- och Import-Module-instruktioner

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

#Requires -Module AzureRM.Compute

Bör ändras till:

#Requires -Module Az.Compute

För Import-Module:

Import-Module -Name AzureRM.Compute

Bör ändras till:

Import-Module -Name Az.Compute

Migrering av Fully-Qualified cmdlet-anrop

Skript som använder modulkvalificerade cmdlet-anrop, till exempel:

AzureRM.Compute\Get-AzureRmVM

Måste ändras för att använda de nya modul- och cmdlet-namnen:

Az.Compute\Get-AzVM

Migrera beroenden för modulmanifest

Moduler som uttrycker beroenden i AzureRM-moduler via en modulmanifestfil (.psd1) måste uppdatera modulnamnen i avsnittet RequiredModules:

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

Måste ändras till:

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

Moduler har tagits bort

Följande moduler har tagits bort:

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

Verktygen för dessa tjänster stöds inte längre aktivt. Kunder uppmuntras att övergå till alternativa tjänster så snart det är bekvämt.

Windows PowerShell 5.1 och .NET 4.7.2

Användning av Az med PowerShell 5.1 för Windows kräver installation av .NET Framework 4.7.2. Att använda PowerShell Core 6.x eller senare kräver 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 via PSCredential. Den här funktionen kommer att introduceras igen i versionen 1/15/2019 för PowerShell 5.1 för Windows. Detta beskrivs i detalj i det här GitHub-problemet.

Standardinloggning med enhetskod i stället för att använda webbläsare

På grund av ändringar i autentiseringsflödet för .NET Standard använder vi enhetsinloggning som standardinloggningsflöde under interaktiv inloggning. Webbläsarbaserad inloggning introduceras på nytt för PowerShell 5.1 för Windows som standard i utgåva 1/15/2019. Då kan användarna välja enhetsinloggning med hjälp av en Switch-parameter.

Modulbrytande förändringar

Det här avsnittet beskriver specifika 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 Set-AzApiManagement cmdlet för att ange dessa egenskaper i stället
  • 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 obligatoriska 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. Skript måste använda andra identitetsparametrar för fakturan.

Az.CognitiveServices (tidigare AzureRM.CognitiveServices)

  • Tog bort GetSkusWithAccountParamSetName parameteruppsättning från Get-AzCognitiveServicesAccountSkus cmdlet. Du måste hämta SKU:er baserat på kontotyp och plats istället för att använda ResourceGroupName och kontonamn.

Az.Compute (tidigare AzureRM.Compute)

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

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

  • Parametern GatewayName har blivit obligatorisk i cmdleten New-AzDataFactoryEncryptValue
  • Tog bort New-AzDataFactoryGatewayKey cmdlet
  • Borttagen LinkedServiceName parameter från Get-AzDataFactoryV2ActivityRun cmdlet-skript bör inte längre använda värdet för det här fältet för att fatta bearbetningsbeslut.

Az.DataLakeAnalytics (tidigare AzureRM.DataLakeAnalytics)

  • Inaktuella cmdletar har tagits bort: New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecretoch Set-AzDataLakeAnalyticsCatalogSecret

Az.DataLakeStore (tidigare AzureRM.DataLakeStore)

  • Följande cmdletar har ändrat parametern Encoding från typen FileSystemCmdletProviderEncoding till System.Text.Encoding. Den här ändringen tar bort kodningsvärdena String och Oem. Alla andra tidigare kodningsvärden finns kvar.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • Tog bort föråldrat Tags-egenskapsalias från New-AzDataLakeStoreAccount- och Set-AzDataLakeStoreAccount-cmdlets.

    Skript som använder sig av

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

    Bör ändras till

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • Borttagna egenskaper Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier, FirewallAllowAzureIps från PSDataLakeStoreAccountBasic objekt. Skript som använder PSDatalakeStoreAccount som returneras från Get-AzDataLakeStoreAccount bör inte referera till dessa egenskaper.

Az.KeyVault (tidigare AzureRM.KeyVault)

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

Az.Media (tidigare AzureRM.Media)

  • Ta bort inaktuellt Tags egenskapsalias från New-AzMediaService cmdlet-skript med hjälp av

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

    Bör ändras till

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

Az.Monitor (tidigare AzureRM.Insights)

  • Pluralnamnen Categories och Timegrains har tagits bort för att använda singularparameternamn från cmdlet-skriptet Set-AzDiagnosticSetting.

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Bör ändras till

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (tidigare AzureRM.Network)

  • Tog bort inaktuell ResourceId parameter från Get-AzServiceEndpointPolicyDefinition cmdlet
  • Den inaktuella egenskapen EnableVmProtection har tagits bort från PSVirtualNetwork objekt
  • Föråldrad cmdlet Set-AzVirtualNetworkGatewayVpnClientConfig har tagits bort.

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 tas bort och ByWorkspaceNameByKind har blivit standardparameteruppsättningen

    Skript som listade datakällor med hjälp av

    Get-AzureRmOperationalInsightsDataSource
    

    Bör ändras för att ange en typ

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

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

  • Tog bort Encryption parameter från New/Set-AzRecoveryServicesAsrPolicy cmdlet
  • TargetStorageAccountName parametern är nu obligatorisk för återställning av hanterade diskar i Restore-AzRecoveryServicesBackupItem cmdlet
  • Parametrarna StorageAccountName och StorageAccountResourceGroupName har tagits bort i Restore-AzRecoveryServicesBackupItem cmdlet
  • Tog bort Nameparameter i Get-AzRecoveryServicesBackupContainer cmdlet

Az.Resources (tidigare AzureRM.Resources)

  • Tog bort Sku parameter från New/Set-AzPolicyAssignment cmdlet

  • Den borttagna Password-parametern från New-AzADServicePrincipal- och New-AzADSpCredential-cmdlet. Lösenord genereras automatiskt; skript som angav lösenordet:

    New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444 -Password $secPassword
    

    Bör ändras för att hämta lösenordet från utdata:

    $credential = New-AzAdSpCredential -ObjectId 00001111-aaaa-2222-bbbb-3333cccc4444
    $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)

  • Parametrarna State och ResourceId har tagits bort från Set-AzSqlDatabaseBackupLongTermRetentionPolicy cmdlet
  • Inaktuella cmdletar har tagits bort: Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing, Remove-AzSqlServerAuditing
  • Den inaktuella parametern Current har tagits bort från cmdleten Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • Den inaktuella parametern DatabaseName har tagits bort från cmdleten Get-AzSqlServerServiceObjective
  • Den inaktuella parametern PrivilegedLogin har tagits bort från cmdleten Set-AzSqlDatabaseDataMaskingPolicy

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

  • Om du vill ha stöd för att skapa en Oauth-lagringskontext med endast lagringskontonamnet har standardparameteruppsättningen ändrats till OAuthParameterSet
    • Exempel: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • Parametern Location har blivit obligatorisk i cmdleten Get-AzStorageUsage
  • Lagrings-API-metoderna använder nu det aktivitetsbaserade Asynkrona mönstret (TAP) 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

Ta bort mjuk borttagen 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 objekten PSAppServicePlan, PSCertificate, PSCloningInfooch PSSite