Grundlegende Änderungen für Az 1.0.0
Dieses Dokument enthält ausführliche Informationen zu den Änderungen zwischen AzureRM 6.x und dem neuen Az-Modul, Version 1.x und höher. Das Inhaltsverzeichnis führt Sie durch einen vollständigen Migrationspfad, einschließlich modulspezifischer Änderungen, die sich auf Ihre Skripte auswirken können.
Allgemeine Hinweise zu den ersten Schritten bei einer Migration von AzureRM zum Az-Modul finden Sie unter Starten der Migration von AzureRM zu Az.
Wichtig
Es gab auch zwischen den Versionen Az 1.0.0 und Az 2.0.0 wichtige Änderungen. Nachdem Sie diesem Leitfaden zum Aktualisieren von AzureRM auf Az gefolgt sind, lesen Sie die Anleitung Az 2.0.0 Breaking Changes, um zu ermitteln, ob Sie zusätzliche Änderungen vornehmen müssen.
Inhaltsverzeichnis
- Allgemeine grundlegende Änderungen
- Grundlegende Änderungen am Modul
- Az.ApiManagement (bisher AzureRM.ApiManagement)
- Az.Billing (bisher AzureRM.Billing, AzureRM.Consumption und AzureRM.UsageAggregates)
- Az.CognitiveServices (bisher AzureRM.CognitiveServices)
- Az.Compute (bisher AzureRM.Compute)
- Az.DataFactory (bisher AzureRM.DataFactories und AzureRM.DataFactoryV2)
- Az.DataLakeAnalytics (bisher AzureRM.DataLakeAnalytics)
- Az.DataLakeStore (bisher AzureRM.DataLakeStore)
- Az.KeyVault (bisher AzureRM.KeyVault)
- Az.Media (bisher AzureRM.Media)
- Az.Monitor (bisher AzureRM.Insights)
- Az.Network (bisher AzureRM.Network)
- Az.OperationalInsights (bisher AzureRM.OperationalInsights)
- Az.RecoveryServices (bisher AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup und AzureRM.RecoveryServices.SiteRecovery)
- Az.Resources (bisher AzureRM.Resources)
- Az.ServiceFabric (bisher AzureRM.ServiceFabric)
- Az.Sql (bisher AzureRM.Sql)
- Az.Storage (bisher Azure.Storage und AzureRM.Storage)
- Az.Websites (bisher AzureRM.Websites)
Allgemeine grundlegende Änderungen
In diesem Abschnitt werden die allgemeinen grundlegenden Änderungen beschrieben, die Teil des neuen Entwurfs des Az-Moduls sind.
Änderungen von Cmdlet-Nomen
Im AzureRM-Modul verwenden Cmdlets entweder AzureRM
oder Azure
als Nomenpräfix. Az vereinfacht und normalisiert Cmdlet-Namen, sodass alle Cmdlets „Az“ als Nomenpräfix verwenden. Beispiel:
Get-AzureRMVM
Get-AzureKeyVaultSecret
Geändert in:
Get-AzVM
Get-AzKeyVaultSecret
Um die Umstellung auf diese neuen Cmdlet-Namen zu vereinfachen, werden mit Az die beiden neuen Cmdlets Enable-AzureRmAlias und Disable-AzureRmAlias eingeführt. Enable-AzureRmAlias
erstellt Aliase für die älteren Cmdlet-Namen in AzureRM, die den neueren Az-Cmdlet-Namen zugeordnet sind. Indem Sie das Argument -Scope
mit Enable-AzureRmAlias
verwenden, können Sie auswählen, wo Aliase aktiviert werden.
Ein Beispiel hierfür ist das folgende Skript in AzureRM:
#Requires -Modules AzureRM.Storage
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Es kann mit Enable-AzureRmAlias
mit minimalen Änderungen ausgeführt werden:
#Requires -Modules Az.Storage
Enable-AzureRmAlias -Scope Process
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Durch das Ausführen von Enable-AzureRmAlias -Scope CurrentUser
werden die Aliase für alle von Ihnen geöffneten PowerShell-Sitzungen aktiviert. Nach der Ausführung dieses Cmdlets sind für ein Skript dieser Art keinerlei Änderungen erforderlich:
Get-AzureRmStorageAccount | Get-AzureStorageContainer | Get-AzureStorageBlob
Ausführliche Informationen zur Nutzung der Alias-Cmdlets finden Sie in der Enable-AzureRmAlias-Referenz.
Wenn Sie bereit sind, Aliase zu deaktivieren, entfernt Disable-AzureRmAlias
die erstellten Aliase. Ausführliche Informationen finden Sie in der Disable-AzureRmAlias-Referenz.
Wichtig
Wenn Sie Aliase deaktivieren, stellen Sie sicher, dass sie für alle Bereiche deaktiviert sind, in denen Aliase aktiviert waren.
Änderungen von Modulnamen
Die Modulnamen wurden von AzureRM.*
in Az.*
geändert, mit Ausnahme der folgenden Module:
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 |
Die Änderungen der Modulnamen bedeuten, dass alle Skripts, die #Requires
oder Import-Module
zum Laden von bestimmten Modulen nutzen, auf die Verwendung des neuen Moduls umgestellt werden müssen. Für Module, bei denen sich das Cmdlet-Suffix nicht geändert hat, bedeutet dies, dass sich das Suffix, das den Operationsbereich angibt, nicht geändert hat, obwohl der Modulname geändert wurde.
Migrieren von #Requires- und Import-Module-Anweisungen
Skripts, für die #Requires
oder Import-Module
zum Deklarieren einer Abhängigkeit von AzureRM-Modulen verwendet wird, müssen aktualisiert werden, damit die neuen Modulnamen genutzt werden. Beispiel:
#Requires -Module AzureRM.Compute
Änderung erforderlich in:
#Requires -Module Az.Compute
Für Import-Module
:
Import-Module -Name AzureRM.Compute
Änderung erforderlich in:
Import-Module -Name Az.Compute
Migrieren von vollqualifizierten Cmdlet-Aufrufen
Bei Verwendung von Skripts, für die Cmdlet-Aufrufe mit Modulqualifikation verwendet werden, z. B.:
AzureRM.Compute\Get-AzureRmVM
Diese müssen geändert werden, damit die neuen Modul- und Cmdlet-Namen verwendet werden:
Az.Compute\Get-AzVM
Migrieren von Modulmanifestabhängigkeiten
Für Module, die Abhängigkeiten von AzureRM-Modulen anhand einer Modulmanifestdatei (.psd1) ausdrücken, müssen die Modulnamen jeweils im Abschnitt RequiredModules
aktualisiert werden:
RequiredModules = @(@{ModuleName="AzureRM.Profile"; ModuleVersion="5.8.2"})
Änderung erforderlich in:
RequiredModules = @(@{ModuleName="Az.Profile"; ModuleVersion="1.0.0"})
Entfernte Module
Folgende Module wurden entfernt:
AzureRM.Backup
AzureRM.Compute.ManagedService
AzureRM.Scheduler
Die Tools für diese Dienste werden nicht mehr aktiv unterstützt. Kunden wird die zeitnahe Umstellung auf alternative Dienste empfohlen.
Windows PowerShell 5.1 und .NET 4.7.2
Für die Verwendung von Az mit PowerShell 5.1 für Windows ist die Installation von .NET Framework 4.7.2 erforderlich. Die Verwendung von PowerShell Core 6.x oder höher erfordert kein .NET Framework.
Vorübergehende Entfernung der Benutzeranmeldung per PSCredential
Aufgrund von Änderungen am Authentifizierungsablauf für .NET Standard entfernen wir die Benutzeranmeldung per PSCredential vorübergehend. Diese Funktion wird mit dem PowerShell 5.1-Release für Windows vom 15.01.2019 wieder eingeführt. Eine ausführliche Beschreibung finden Sie unter diesem GitHub-Problem.
Anmeldung per Standardgerätecode anstelle einer Webbrowser-Eingabeaufforderung
Aufgrund von Änderungen am Authentifizierungsablauf für .NET Standard nutzen wir die Geräteanmeldung während der interaktiven Anmeldung als Standardanmeldungsablauf. Die Anmeldung per Webbrowser wird im PowerShell 5.1-Release für Windows vom 15.01.2019 wieder als Standard eingeführt. Benutzer können dann die Geräteanmeldung mit einem Switch-Parameter wählen.
Grundlegende Änderungen am Modul
In diesem Abschnitt werden bestimmte wichtige Änderungen für einzelne Module und Cmdlets beschrieben.
Az.ApiManagement (bisher AzureRM.ApiManagement)
- Folgende Cmdlets wurden entfernt:
- New-AzureRmApiManagementHostnameConfiguration
- Set-AzureRmApiManagementHostnames
- Update-AzureRmApiManagementDeployment
- Import-AzureRmApiManagementHostnameCertificate
- Verwenden Sie stattdessen das Cmdlet Set-AzApiManagement, um diese Eigenschaften festzulegen.
- Die folgenden Eigenschaften wurden entfernt:
- Die Eigenschaften
PortalHostnameConfiguration
,ProxyHostnameConfiguration
,ManagementHostnameConfiguration
undScmHostnameConfiguration
vom TypPsApiManagementHostnameConfiguration
wurden ausPsApiManagementContext
entfernt. Verwenden Sie stattdessenPortalCustomHostnameConfiguration
,ProxyCustomHostnameConfiguration
,ManagementCustomHostnameConfiguration
undScmCustomHostnameConfiguration
vom TypPsApiManagementCustomHostNameConfiguration
. - Die
StaticIPs
-Eigenschaft wurde aus PsApiManagementContext entfernt. Die Eigenschaft wurde inPublicIPAddresses
undPrivateIPAddresses
unterteilt. - Die erforderliche
Location
-Eigenschaft wurde aus dem Cmdlet New-AzureApiManagementVirtualNetwork entfernt.
- Die Eigenschaften
Az.Billing (bisher AzureRM.Billing, AzureRM.Consumption und AzureRM.UsageAggregates)
- Der Parameter
InvoiceName
wurde aus dem CmdletGet-AzConsumptionUsageDetail
entfernt. Für Skripts müssen andere Identitätsparameter für die Rechnung genutzt werden.
Az.CognitiveServices (bisher AzureRM.CognitiveServices)
- Der Parametersatz
GetSkusWithAccountParamSetName
wurde aus dem CmdletGet-AzCognitiveServicesAccountSkus
entfernt. Sie müssen SKUs nach Kontotyp und Standort abrufen, anstatt ResourceGroupName und den Kontonamen zu verwenden.
Az.Compute (bisher AzureRM.Compute)
IdentityIds
wurden aus derIdentity
-Eigenschaft in den ObjektenPSVirtualMachine
undPSVirtualMachineScaleSet
entfernt. In Skripts sollte der Wert dieses Felds nicht mehr verwendet werden, um Verarbeitungsentscheidungen zu treffen.- Der Typ der
InstanceView
-Eigenschaft desPSVirtualMachineScaleSetVM
-Objekts wurde vonVirtualMachineInstanceView
inVirtualMachineScaleSetVMInstanceView
geändert. - Die Eigenschaften
AutoOSUpgradePolicy
undAutomaticOSUpgrade
wurden aus derUpgradePolicy
-Eigenschaft entfernt. - Der Typ der
Sku
-Eigenschaft imPSSnapshotUpdate
-Objekt wurde vonDiskSku
inSnapshotSku
geändert. VmScaleSetVMParameterSet
wurde aus dem CmdletAdd-AzVMDataDisk
entfernt. Sie können einer ScaleSet-VM nicht mehr einzeln einen Datenträger hinzufügen.
Az.DataFactory (bisher AzureRM.DataFactories und AzureRM.DataFactoryV2)
- Der Parameter
GatewayName
ist im CmdletNew-AzDataFactoryEncryptValue
jetzt obligatorisch. - Das Cmdlet
New-AzDataFactoryGatewayKey
wurde entfernt. - Der Parameter
LinkedServiceName
wurde aus dem CmdletGet-AzDataFactoryV2ActivityRun
entfernt. In Skripts sollte der Wert dieses Felds nicht mehr verwendet werden, um Verarbeitungsentscheidungen zu treffen.
Az.DataLakeAnalytics (bisher AzureRM.DataLakeAnalytics)
- Veraltete Cmdlets wurden entfernt:
New-AzDataLakeAnalyticsCatalogSecret
,Remove-AzDataLakeAnalyticsCatalogSecret
undSet-AzDataLakeAnalyticsCatalogSecret
.
Az.DataLakeStore (bisher AzureRM.DataLakeStore)
Für die folgenden Cmdlets wurde der Typ des Parameters
Encoding
vonFileSystemCmdletProviderEncoding
inSystem.Text.Encoding
geändert. Bei dieser Änderung wurden die CodierungswerteString
undOem
entfernt. Alle anderen bisherigen Codierungswerte bleiben erhalten.- New-AzureRmDataLakeStoreItem
- Add-AzureRmDataLakeStoreItemContent
- Get-AzureRmDataLakeStoreItemContent
Der veraltete Eigenschaftenalias
Tags
wurde aus den CmdletsNew-AzDataLakeStoreAccount
undSet-AzDataLakeStoreAccount
entfernt.Skripts mit Verwendung von:
New-AzureRMDataLakeStoreAccount -Tags @{TagName="TagValue"}
Änderung erforderlich in:
New-AzDataLakeStoreAccount -Tag @{TagName="TagValue"}
Die veralteten Eigenschaften
Identity
,EncryptionState
,EncryptionProvisioningState
,EncryptionConfig
,FirewallState
,FirewallRules
,VirtualNetworkRules
,TrustedIdProviderState
,TrustedIdProviders
,DefaultGroup
,NewTier
,CurrentTier
undFirewallAllowAzureIps
wurden aus demPSDataLakeStoreAccountBasic
-Objekt entfernt. Alle Skripts, für die das vonGet-AzDataLakeStoreAccount
zurückgegebenePSDatalakeStoreAccount
-Objekt verwendet wird, sollten nicht auf diese Eigenschaften verweisen.
Az.KeyVault (bisher AzureRM.KeyVault)
- Die
PurgeDisabled
-Eigenschaft wurde aus den ObjektenPSKeyVaultKeyAttributes
,PSKeyVaultKeyIdentityItem
undPSKeyVaultSecretAttributes
entfernt. In Skripts sollte nicht mehr auf diePurgeDisabled
-Eigenschaft verwiesen werden, um Verarbeitungsentscheidungen zu treffen.
Az.Media (bisher AzureRM.Media)
Der veraltete Eigenschaftenalias
Tags
wurde aus dem CmdletNew-AzMediaService
entfernt. Skripts mit Verwendung von:New-AzureRMMediaService -Tags @{TagName="TagValue"}
Änderung erforderlich in:
New-AzMediaService -Tag @{TagName="TagValue"}
Az.Monitor (bisher AzureRM.Insights)
Die Plural-Parameternamen
Categories
undTimegrains
wurden in Singular-Parameternamen aus dem CmdletSet-AzDiagnosticSetting
geändert. Skripts mit Verwendung von:Set-AzureRmDiagnosticSetting -Timegrains PT1M -Categories Category1, Category2
Änderung erforderlich in:
Set-AzDiagnosticSetting -Timegrain PT1M -Category Category1, Category2
Az.Network (bisher AzureRM.Network)
- Der veraltete Parameter
ResourceId
wurde aus dem CmdletGet-AzServiceEndpointPolicyDefinition
entfernt. - Die verwaltete
EnableVmProtection
-Eigenschaft wurde aus demPSVirtualNetwork
-Objekt entfernt. - Das veraltete Cmdlet
Set-AzVirtualNetworkGatewayVpnClientConfig
wurde entfernt.
Für Skripts sollten basierend auf den Werten dieser Felder keine Verarbeitungsentscheidungen mehr getroffen werden.
Az.OperationalInsights (bisher AzureRM.OperationalInsights)
Der Standardparametersatz für
Get-AzOperationalInsightsDataSource
wurde entfernt, undByWorkspaceNameByKind
ist zum Standardparametersatz geworden.Skripts mit Auflistung von Datenquellen mit:
Get-AzureRmOperationalInsightsDataSource
Änderung mit Angabe der Art erforderlich:
Get-AzOperationalInsightsDataSource -Kind AzureActivityLog
Az.RecoveryServices (bisher AzureRM.RecoveryServices, AzureRM.RecoveryServices.Backup und AzureRM.RecoveryServices.SiteRecovery)
- Der Parameter
Encryption
wurde aus dem CmdletNew/Set-AzRecoveryServicesAsrPolicy
entfernt. - Der Parameter
TargetStorageAccountName
ist für Wiederherstellungen von verwalteten Datenträgern im CmdletRestore-AzRecoveryServicesBackupItem
jetzt obligatorisch. - Die Parameter
StorageAccountName
undStorageAccountResourceGroupName
im CmdletRestore-AzRecoveryServicesBackupItem
wurden entfernt. - Der Parameter
Name
im CmdletGet-AzRecoveryServicesBackupContainer
wurde entfernt.
Az.Resources (bisher AzureRM.Resources)
Der Parameter
Sku
wurde aus dem CmdletNew/Set-AzPolicyAssignment
entfernt.Der Parameter
Password
wurde aus den CmdletsNew-AzADServicePrincipal
undNew-AzADSpCredential
entfernt. Die Kennwörter werden automatisch generiert. Bei Verwendung von Skripts mit Bereitstellung des Kennworts:New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 -Password $secPassword
Änderung erforderlich, damit das Kennwort aus der Ausgabe verwendet wird:
$credential = New-AzAdSpCredential -ObjectId 1f99cf81-0146-4f4e-beae-2007d0668476 $secPassword = $credential.Secret
Az.ServiceFabric (bisher AzureRM.ServiceFabric)
- Die folgenden Cmdlet-Rückgabetypen wurden geändert:
- Die
ServiceTypeHealthPolicies
-Eigenschaft vom TypApplicationHealthPolicy
wurde entfernt. - Die
ApplicationHealthPolicies
-Eigenschaft vom TypClusterUpgradeDeltaHealthPolicy
wurde entfernt. - Die
OverrideUserUpgradePolicy
-Eigenschaft vom TypClusterUpgradePolicy
wurde entfernt. - Diese Änderungen wirken sich auf die folgenden Cmdlets aus:
- 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
- Die
Az.Sql (bisher AzureRM.Sql)
- Die Parameter
State
undResourceId
wurden aus dem CmdletSet-AzSqlDatabaseBackupLongTermRetentionPolicy
entfernt. - Veraltete Cmdlets wurden entfernt:
Get/Set-AzSqlServerBackupLongTermRetentionVault
,Get/Start/Stop-AzSqlServerUpgrade
,Get/Set-AzSqlDatabaseAuditingPolicy
,Get/Set-AzSqlServerAuditingPolicy
,Remove-AzSqlDatabaseAuditing
undRemove-AzSqlServerAuditing
. - Der veraltete Parameter
Current
wurde aus dem CmdletGet-AzSqlDatabaseBackupLongTermRetentionPolicy
entfernt. - Der veraltete Parameter
DatabaseName
wurde aus dem CmdletGet-AzSqlServerServiceObjective
entfernt. - Der veraltete Parameter
PrivilegedLogin
wurde aus dem CmdletSet-AzSqlDatabaseDataMaskingPolicy
entfernt.
Az.Storage (bisher Azure.Storage und AzureRM.Storage)
- Der Standardparametersatz wurde in
OAuthParameterSet
geändert, um die Erstellung eines OAuth-Speicherkontexts nur mit dem Speicherkontonamen zu unterstützen.- Beispiel:
$ctx = New-AzureStorageContext -StorageAccountName $accountName
- Beispiel:
- Der Parameter
Location
ist im CmdletGet-AzStorageUsage
jetzt obligatorisch. - Für die Methoden der Storage-API wird jetzt anstelle von synchronen API-Aufrufen das aufgabenbasierte asynchrone Muster (Task-based Asynchronous Pattern, TAP) verwendet. Die folgenden Beispiele veranschaulichen die neuen asynchronen Befehle:
Momentaufnahme eines Blobs erstellen
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
Momentaufnahme freigeben
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
Vorläufig gelöschten Blob wiederherstellen
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()
Blobtarif festlegen
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 (bisher AzureRM.Websites)
- Die veralteten Eigenschaften wurden aus den Objekten
PSAppServicePlan
,PSCertificate
,PSCloningInfo
undPSSite
entfernt.
Azure PowerShell