Wijzigingen die fouten veroorzaken voor Az 1.0.0

Dit document geeft gedetailleerde informatie over de wijzigingen tussen AzureRM 6.x en de nieuwe Az-module, versie 1.x en hoger. De inhoudsopgave helpt u bij het doorlopen van een volledig migratiepad, inclusief module-specifieke wijzigingen die van invloed kunnen zijn op uw scripts.

Voor algemeen advies om aan te de slag te gaan met een migratie van AzureRM naar Az, zie Migratie van AzureRM naar Az starten.

Belangrijk

Ook tussen Az 1.0.0 en Az 2.0.0 zijn er belangrijke wijzigingen doorgevoerd. Na het volgen van deze handleiding voor het bijwerken van AzureRM naar Az, kunt u de Belangrijke wijzigingen in Az 2.0.0 raadplegen om te weten te komen of u extra wijzigingen moet aanbrengen.

Inhoudsopgave

Algemene belangrijke wijzigingen

In deze sectie wordt nader ingegaan op de algemene belangrijke wijzigingen die deel uitmaken van het herontwerp van de Az-module.

Voorvoegselwijzigingen van cmdlets

In de AzureRM-module gebruikten cmdlets AzureRM of Azure als voorvoegsel. Az vereenvoudigt en normaliseert cmdlets-namen, zodat alle cmdlets 'Az' gebruiken als voorvoegsel. Voorbeeld:

Get-AzureRMVM
Get-AzureKeyVaultSecret

Is gewijzigd in:

Get-AzVM
Get-AzKeyVaultSecret

Om de overgang naar deze nieuwe cmdlet-namen eenvoudiger te maken, introduceert Az twee nieuwe cmdlets: Enable-AzureRmAlias en Disable-AzureRmAlias. Enable-AzureRmAlias maakt aliassen voor de oude cmdlets-namen in AzureRM die worden toegewezen aan de nieuwe namen van Az-cmdlets. Met behulp van argument -Scope met Enable-AzureRmAlias kunt u kiezen waar aliassen worden ingeschakeld.

Neem bijvoorbeeld het volgende script in AzureRM:

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

Kan met minimale wijzigingen worden uitgevoerd met behulp van Enable-AzureRmAlias:

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

Als u Enable-AzureRmAlias -Scope CurrentUser uitvoert, worden de aliassen ingeschakeld voor alle PowerShell-sessies die u opent, zodat een dergelijk script na uitvoering van deze cmdlet helemaal niet meer hoeft te worden gewijzigd:

Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob

Voor volledige details over het gebruik van de alias-cmdlets, zie de Enable-AzureRmAlias-referentie.

Wanneer u klaar bent om aliassen uit te schakelen, verwijdert Disable-AzureRmAlias de gemaakte aliassen. Voor volledige details, zie de Disable-AzureRmAlias-referentie.

Belangrijk

Wanneer u aliassen uitschakelt, zorg er dan voor dat ze uitgeschakeld zijn voor alle bereiken waarvoor aliassen waren ingeschakeld.

Wijzigingen in de modulenaam

De modulenamen zijn gewijzigd van AzureRM.* in Az.*, behalve voor de volgende modules:

AzureRM-module Az-module
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

De wijzigingen in de modulenamen betekenen dat elk script dat #Requires of Import-Module gebruikt om specifieke modules te laden, zodanig moet worden gewijzigd dat de nieuwe modulenaam wordt gebruikt. Voor modules waarbij het cmdlet-achtervoegsel niet is gewijzigd, betekent dit dat de naam van de module weliswaar is gewijzigd, maar het achtervoegsel dat de werkruimte aangeeft, juist niet.

Instructies voor migratie van #Requires en Import-module

Scripts waarin #Requires of Import-Module wordt gebruikt om een afhankelijkheid van AzureRM-modules te declareren, moeten worden bijgewerkt om de nieuwe modulenamen te gebruiken. Voorbeeld:

#Requires -Module AzureRM.Compute

Moet worden gewijzigd in:

#Requires -Module Az.Compute

Voor Import-Module:

Import-Module -Name AzureRM.Compute

Moet worden gewijzigd in:

Import-Module -Name Az.Compute

Volledig gekwalificeerde cmdlet-aanroepen migreren

Scripts die gebruikmaken van volledig gekwalificeerde cmdlet-aanroepen, zoals:

AzureRM.Compute\Get-AzureRmVM

Moeten zodanig worden gewijzigd dat de nieuwe module- en cmdlet-namen worden gebruikt:

Az.Compute\Get-AzVM

Afhankelijkheden van modulemanifesten migreren

In modules waarin afhankelijkheden van AzureRM-modules worden uitgedrukt via een modulemanifestbestand (.psd1), moeten de modulenamen worden bijgewerkt in de sectie RequiredModules:

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

Moet worden gewijzigd in:

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

Verwijderde modules

De volgende modules zijn verwijderd:

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

De hulpprogramma's voor deze services worden niet langer actief ondersteund. Klanten worden aangeraden om alternatieve services te verplaatsen wanneer dit uitkomt.

Windows PowerShell 5.1 en .NET 4.7.2

Als u Az met PowerShell 5.1 voor Windows gebruikt, is de installatie van .NET Framework 4.7.2 vereist. Het gebruik van PowerShell Core 6.x of hoger vereist geen .NET Framework.

Gebruikersaanmelding met PSCredential tijdelijk verwijderd

Door wijzigingen in de verificatiestroom voor .NET Standard, verwijderen we tijdelijk gebruikersaanmelding met PSCredential. Deze mogelijkheid wordt opnieuw geïntroduceerd in de versie van 15-01-2019 voor PowerShell 5.1 voor Windows. Dit wordt uitgebreid besproken in dit GitHub-probleem.

Standaardaanmelding met apparaatcode in plaats van webbrowserprompt

Vanwege wijzigingen in de verificatiestroom voor .NET Standard, gebruiken we apparaataanmelding als de standaardaanmeldmethode tijdens interactieve aanmeldingen. Aanmelding op basis van de webbrowser wordt opnieuw geïntroduceerd als standaardmethode voor PowerShell 5.1 voor Windows in de versie van 15-01-2019. Gebruikers kunnen dan kiezen voor apparaataanmelding met een Switch-parameter.

Belangrijke modulewijzigingen

In deze sectie worden specifieke belangrijke wijzigingen voor individuele modules en cmdlets beschreven.

Az.ApiManagement (eerder AzureRM.ApiManagement)

  • De volgende cmdlets zijn verwijderd:
    • New-AzureRmApiManagementHostnameConfiguration
    • Set-AzureRmApiManagementHostnames
    • Update-AzureRmApiManagementDeployment
    • Import-AzureRmApiManagementHostnameCertificate
    • Gebruik in plaats daarvan de cmdlet Set-AzApiManagement om deze eigenschappen in te stellen
  • De volgende eigenschappen zijn verwijderd:
    • De eigenschappen PortalHostnameConfiguration, ProxyHostnameConfiguration, ManagementHostnameConfiguration en ScmHostnameConfiguration van type PsApiManagementHostnameConfiguration van PsApiManagementContext zijn verwijderd. Gebruik in plaats daarvan PortalCustomHostnameConfiguration, ProxyCustomHostnameConfiguration. ManagementCustomHostnameConfiguration en ScmCustomHostnameConfiguration van type PsApiManagementCustomHostNameConfiguration.
    • Eigenschap StaticIPs is verwijderd uit PsApiManagementContext. De eigenschap is gesplitst in PublicIPAddresses en PrivateIPAddresses.
    • De vereiste eigenschap Location is verwijderd uit de cmdlet New-AzureApiManagementVirtualNetwork.

Az.Billing (eerder AzureRM.Billing, AzureRM.Consumption en AzureRM.UsageAggregates)

  • De parameter InvoiceName is verwijderd uit de cmdlet Get-AzConsumptionUsageDetail. Scripts moeten andere identiteitsparameters voor aanroepen gebruiken.

Az.CognitiveServices (eerder AzureRM.CognitiveServices)

  • Parameterset GetSkusWithAccountParamSetName is verwijderd uit cmdlet Get-AzCognitiveServicesAccountSkus. U moet per accounttype en locatie SKU's ophalen, in plaats van resourcegroepnaam en accountnaam.

Az.Compute (eerder AzureRM.Compute)

  • IdentityIds wordt verwijderd uit de eigenschap Identity in de objecten PSVirtualMachine en PSVirtualMachineScaleSet. Scripts zouden de waarde van dit veld niet langer moeten gebruiken voor verwerkingsbesluiten.
  • Het type van eigenschap InstanceView van object PSVirtualMachineScaleSetVM is gewijzigd van VirtualMachineInstanceView in VirtualMachineScaleSetVMInstanceView
  • De eigenschappen AutoOSUpgradePolicy en AutomaticOSUpgrade zijn verwijderd uit de eigenschap UpgradePolicy
  • Het type van de eigenschap Sku in object PSSnapshotUpdate is gewijzigd van DiskSku in SnapshotSku
  • VmScaleSetVMParameterSet is verwijderd uit de cmdlet Add-AzVMDataDisk, u kunt een dataschijf niet langer afzonderlijk toevoegen aan een schaalset-VM.

Az.DataFactory (eerder AzureRM.DataFactories en AzureRM.DataFactoryV2)

  • De parameter GatewayName is verplicht geworden in de cmdlet New-AzDataFactoryEncryptValue
  • De cmdlet New-AzDataFactoryGatewayKey is verwijderd
  • De parameter LinkedServiceName is verwijderd uit de cmdlet Get-AzDataFactoryV2ActivityRun. Scripts zouden niet langer gebruik moeten maken van de waarde van dit veld voor verwerkingsbesluiten.

Az.DataLakeAnalytics (eerder AzureRM.DataLakeAnalytics)

  • De afgeschafte cmdlets New-AzDataLakeAnalyticsCatalogSecret, Remove-AzDataLakeAnalyticsCatalogSecret en Set-AzDataLakeAnalyticsCatalogSecret zijn verwijderd

Az.DataLakeStore (eerder AzureRM.DataLakeStore)

  • Van de volgende cmdlets is de parameter Encoding gewijzigd van type FileSystemCmdletProviderEncoding in System.Text.Encoding. Door deze wijziging worden de versleutelingswaarden String en Oem verwijderd. Alle andere eerdere versleutelingswaarden blijven bestaan.

    • New-AzureRmDataLakeStoreItem
    • Add-AzureRmDataLakeStoreItemContent
    • Get-AzureRmDataLakeStoreItemContent
  • De afgeschafte eigenschapsalias Tags is verwijderd uit de cmdlets New-AzDataLakeStoreAccount en Set-AzDataLakeStoreAccount

    Scripts die gebruikmaken van

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

    Moeten worden gewijzigd in

    New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
    
  • De afgeschafte eigenschappen Identity, EncryptionState, EncryptionProvisioningState, EncryptionConfig, FirewallState, FirewallRules, VirtualNetworkRules, TrustedIdProviderState, TrustedIdProviders, DefaultGroup, NewTier, CurrentTier en FirewallAllowAzureIps zijn verwijderd uit het object PSDataLakeStoreAccountBasic. Elk script dat gebruikmaakt van de uit Get-AzDataLakeStoreAccount geretourneerde PSDatalakeStoreAccount, mag niet verwijzen naar deze eigenschappen.

Az.KeyVault (eerder AzureRM.KeyVault)

  • De eigenschap PurgeDisabled is verwijderd uit de objecten PSKeyVaultKeyAttributes, PSKeyVaultKeyIdentityItem en PSKeyVaultSecretAttributes. Scripts moeten niet langer verwijzen naar de eigenschap PurgeDisabled voor verwerkingsbesluiten.

Az.Media (eerder AzureRM.Media)

  • De afgeschafte eigenschapsalias Tags is verwijderd uit de cmdlet New-AzMediaService. Scripts die gebruikmaken van

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

    Moeten worden gewijzigd in

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

Az.Monitor (eerder AzureRM.Insights)

  • De meervoudsnamen Categories en parameter Timegrains zijn verwijderd ten behoeve van enkelvoudige parameternamen uit de cmdlet Set-AzDiagnosticSetting. Scripts die gebruikmaken van

    Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
    

    Moeten worden gewijzigd in

    Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
    

Az.Network (eerder AzureRM.Network)

  • De afgeschafte parameter ResourceId is verwijderd uit de cmdlet Get-AzServiceEndpointPolicyDefinition
  • De afgeschafte eigenschap EnableVmProtection is verwijderd uit het object PSVirtualNetwork
  • De afgeschafte cmdlet Set-AzVirtualNetworkGatewayVpnClientConfig is verwijderd

Scripts zouden niet langer verwerkingsbesluiten moeten maken op basis van de waarden in deze velden.

Az.OperationalInsights (eerder AzureRM.OperationalInsights)

  • De standaardparameterset voor Get-AzOperationalInsightsDataSource is verwijderd en ByWorkspaceNameByKind is de standaardparameterset geworden

    Scripts die gegevensbronnen vermelden die gebruikmaken van

    Get-AzureRmOperationalInsightsDataSource
    

    Moeten worden gewijzigd om een Soort op te geven

    Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
    

Az.RecoveryServices (eerder AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup en AzureRM.RecoveryServices.SiteRecovery)

  • De parameter Encryption is verwijderd uit cmdlet New/Set-AzRecoveryServicesAsrPolicy
  • De parameter TargetStorageAccountName is nu verplicht voor herstelde beheerde schijven in de cmdlet Restore-AzRecoveryServicesBackupItem
  • De parameters StorageAccountName en StorageAccountResourceGroupName in de cmdlet Restore-AzRecoveryServicesBackupItem zijn verwijderd
  • De parameter Name in de cmdlet Get-AzRecoveryServicesBackupContainer is verwijderd

Az.Resources (eerder AzureRM.Resources)

  • De parameter Sku is verwijderd uit cmdlet New/Set-AzPolicyAssignment

  • De parameter Password is verwijderd uit de cmdlet New-AzADServicePrincipal en New-AzADSpCredential. Wachtwoorden worden automatisch gegeneerd, scripts die het wachtwoord opgeven:

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

    Moet worden gewijzigd om het wachtwoord uit de uitvoer op te halen:

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

Az.ServiceFabric (eerder AzureRM.ServiceFabric)

  • De volgende cmdlet-retourtypen zijn gewijzigd:
    • De eigenschap ServiceTypeHealthPolicies van het type ApplicationHealthPolicy is verwijderd.
    • De eigenschap ApplicationHealthPolicies van het type ClusterUpgradeDeltaHealthPolicy is verwijderd.
    • De eigenschap OverrideUserUpgradePolicy van het type ClusterUpgradePolicy is verwijderd.
    • Deze wijzigingen zijn van invloed op de volgende cmdlets:
      • 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 (eerder AzureRM.Sql)

  • De parameters State en ResourceId zijn verwijderd uit de cmdlet Set-AzSqlDatabaseBackupLongTermRetentionPolicy
  • De afgeschafte cmdlets Get/Set-AzSqlServerBackupLongTermRetentionVault, Get/Start/Stop-AzSqlServerUpgrade, Get/Set-AzSqlDatabaseAuditingPolicy, Get/Set-AzSqlServerAuditingPolicy, Remove-AzSqlDatabaseAuditing en Remove-AzSqlServerAuditing zijn verwijderd
  • De afgeschafte parameter Current is verwijderd uit de cmdlet Get-AzSqlDatabaseBackupLongTermRetentionPolicy
  • De afgeschafte parameter DatabaseName is verwijderd uit de cmdlet Get-AzSqlServerServiceObjective
  • De afgeschafte parameter PrivilegedLogin is verwijderd uit de cmdlet Set-AzSqlDatabaseDataMaskingPolicy

Az.Storage (eerder Azure.Storage en AzureRM.Storage)

  • Ter ondersteuning van het maken van een Oauth-opslagcontext met alleen de naam van het opslagaccount, is de standaardparameterset gewijzigd in OAuthParameterSet
    • Voorbeeld: $ctx = New-AzureStorageContext -StorageAccountName $accountName
  • De parameter Location is verplicht geworden in de cmdlet Get-AzStorageUsage
  • De opslag-API-methoden gebruiken het Task-based Asynchronous Pattern (TAP), in plaats van synchrone API-aanroepen. De volgende voorbeelden tonen de nieuwe asynchrone opdrachten:

Momentopname van blob

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

Momentopname delen

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

Voorlopige verwijdering van blob ongedaan maken

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()

Set Blob Tier (Blob-laag instellen)

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 (eerder AzureRM.Websites)

  • De afgeschafte eigenschappen zijn verwijderd uit de objecten PSAppServicePlan, PSCertificate, PSCloningInfo en PSSite