Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
I den här artikeln får du lära dig hur du använder PowerShell-modulen Az.Tools.Migration för att automatiskt uppgradera dina PowerShell-skript och skriptmoduler från AzureRM till Az PowerShell-modulen. Ytterligare migreringsalternativ finns i Migrera Azure PowerShell från AzureRM till Az.
Varning
AzureRM PowerShell-modulen har officiellt avvecklats från och med den 29 februari 2024. Användare rekommenderas att migrera från AzureRM till Az PowerShell-modulen för att säkerställa fortsatt support och uppdateringar.
Även om AzureRM-modulen kanske fortfarande fungerar, underhålls eller stöds den inte längre, vilket innebär att fortsatt användning sker på användarens eget ansvar och risk. Se våra migreringsresurser för vägledning om övergången till Az-modulen.
Kravspecifikation
- Uppdatera dina befintliga PowerShell-skript till den senaste versionen av AzureRM PowerShell-modulen (6.13.1). 
- Installera PowerShell-modulen Az.Tools.Migration. - Install-Module -Name Az.Tools.Migration
Steg 1: Generera en uppgraderingsplan
Du använder cmdleten New-AzUpgradeModulePlan för att generera en uppgraderingsplan för migrering av skript och moduler till Az PowerShell-modulen. Den här cmdleten gör inga ändringar i dina befintliga skript. Använd parametern FilePath för att rikta in dig på ett visst skript eller parametern DirectoryPath för att rikta in dig på alla skript i en specifik mapp.
Anmärkning
Cmdleten New-AzUpgradeModulePlan kör inte planen, den genererar bara uppgraderingsstegen.
I följande exempel genereras en plan för alla skript i C:\Scripts mappen. Parametern OutVariable anges så att resultatet returneras och lagras samtidigt i en variabel med namnet Plan.
# Generate an upgrade plan for all the scripts and module files in the specified folder and save it to a variable.
New-AzUpgradeModulePlan -FromAzureRmVersion 6.13.1 -ToAzVersion latest -DirectoryPath 'C:\Scripts' -OutVariable Plan
Som du ser i följande utdata beskriver uppgraderingsplanen den specifika fil och förskjutningspunkter som kräver ändringar när du flyttar från AzureRM till Az PowerShell-cmdletarna.
Order Location                                                   UpgradeType     PlanResult             Original
----- --------                                                   -----------     ----------             --------
1     compute-create-dockerhost.ps1:59:24                        CmdletParameter ReadyToUpgrade         ExtensionName
2     compute-create-dockerhost.ps1:59:1                         Cmdlet          ReadyToUpgrade         Set-AzureRmVM...
3     compute-create-dockerhost.ps1:54:1                         Cmdlet          ReadyToUpgrade         New-AzureRmVM
4     compute-create-dockerhost.ps1:51:1                         Cmdlet          ReadyToUpgrade         Add-AzureRmVM...
5     compute-create-dockerhost.ps1:47:1                         Cmdlet          ReadyToUpgrade         Add-AzureRmVM...
6     compute-create-dockerhost.ps1:46:1                         Cmdlet          ReadyToUpgrade         Set-AzureRmVM...
7     compute-create-dockerhost.ps1:45:1                         Cmdlet          ReadyToUpgrade         Set-AzureRmVM...
8     compute-create-dockerhost.ps1:44:13                        Cmdlet          ReadyToUpgrade         New-AzureRmVM...
9     compute-create-dockerhost.ps1:40:8                         Cmdlet          ReadyToUpgrade         New-AzureRmNe...
10    compute-create-dockerhost.ps1:36:8                         Cmdlet          ReadyToUpgrade         New-AzureRmNe...
11    compute-create-dockerhost.ps1:31:16                        Cmdlet          ReadyToUpgrade         New-AzureRmNe...
12    compute-create-dockerhost.ps1:26:15                        Cmdlet          ReadyToUpgrade         New-AzureRmNe...
13    compute-create-dockerhost.ps1:22:8                         Cmdlet          ReadyToUpgrade         New-AzureRmPu...
14    compute-create-dockerhost.ps1:18:9                         Cmdlet          ReadyToUpgrade         New-AzureRmVi...
15    compute-create-dockerhost.ps1:15:17                        Cmdlet          ReadyToUpgrade         New-AzureRmVi...
16    compute-create-dockerhost.ps1:12:1                         Cmdlet          ReadyToUpgrade         New-AzureRmRe...
17    compute-create-windowsvm-quick.ps1:18:3                    CmdletParameter ReadyToUpgrade         ImageName
18    compute-create-windowsvm-quick.ps1:14:1                    Cmdlet          ReadyToUpgrade         New-AzureRmVM
19    compute-create-windowsvm-quick.ps1:11:1                    Cmdlet          ReadyToUpgrade         New-AzureRmRe...
20    compute-create-wordpress-mysql.ps1:59:24                   CmdletParameter ReadyToUpgrade         ExtensionName
...
Innan du utför uppgraderingen måste du visa resultatet av planen för problem. I följande exempel returneras en lista över skript och objekt i skripten som förhindrar att de uppgraderas automatiskt.
# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List
Objekten som visas i följande utdata uppgraderas inte automatiskt utan att problemen åtgärdas manuellt först.
Order                  : 42
UpgradeType            : CmdletParameter
PlanResult             : ErrorParameterNotFound
PlanSeverity           : Error
PlanResultReason       : Parameter was not found in Get-AzResource or it's aliases.
SourceCommand          : CommandReference
SourceCommandParameter : CommandReferenceParameter
Location               : devtestlab-add-marketplace-image-to-lab.ps1:14:74
FullPath               : C:\Scripts\devtestlab-add-marketplace-image-to-lab.ps1
StartOffset            : 556
Original               : ResourceNameEquals
Replacement            :
Steg 2: Utför uppgraderingen
Försiktighet
Det finns ingen ångra-åtgärd. Se alltid till att du har en säkerhetskopia av dina PowerShell-skript och moduler som du försöker uppgradera.
När du är nöjd med planen utförs uppgraderingen med cmdleten Invoke-AzUpgradeModulePlan . Ange SaveChangesToNewFiles parametervärdet för FileEditMode att förhindra att ändringar görs i dina ursprungliga skript. När du använder det här läget utförs uppgraderingen genom att skapa en kopia av varje skript som är avsett för _az_upgraded filnamnen.
Varning
Cmdleten Invoke-AzUpgradeModulePlan är destruktiv när alternativet -FileEditMode ModifyExistingFiles anges! Den ändrar dina skript och funktioner på plats enligt moduluppgraderingsplanen som genereras av cmdleten New-AzUpgradeModulePlan . För det icke-destruktiva alternativet anger du -FileEditMode SaveChangesToNewFiles i stället.
# Execute the automatic upgrade plan and save the results to a variable.
Invoke-AzUpgradeModulePlan -Plan $Plan -FileEditMode SaveChangesToNewFiles -OutVariable Results
Order Location                                                   UpgradeType     UpgradeResult    Original
----- --------                                                   -----------     -------------    --------
1     compute-create-dockerhost.ps1:59:24                        CmdletParameter UpgradeCompleted ExtensionName
2     compute-create-dockerhost.ps1:59:1                         Cmdlet          UpgradeCompleted Set-AzureRmVMExtens...
3     compute-create-dockerhost.ps1:54:1                         Cmdlet          UpgradeCompleted New-AzureRmVM
4     compute-create-dockerhost.ps1:51:1                         Cmdlet          UpgradeCompleted Add-AzureRmVMSshPub...
5     compute-create-dockerhost.ps1:47:1                         Cmdlet          UpgradeCompleted Add-AzureRmVMNetwor...
6     compute-create-dockerhost.ps1:46:1                         Cmdlet          UpgradeCompleted Set-AzureRmVMSource...
7     compute-create-dockerhost.ps1:45:1                         Cmdlet          UpgradeCompleted Set-AzureRmVMOperat...
8     compute-create-dockerhost.ps1:44:13                        Cmdlet          UpgradeCompleted New-AzureRmVMConfig
9     compute-create-dockerhost.ps1:40:8                         Cmdlet          UpgradeCompleted New-AzureRmNetworkI...
10    compute-create-dockerhost.ps1:36:8                         Cmdlet          UpgradeCompleted New-AzureRmNetworkS...
11    compute-create-dockerhost.ps1:31:16                        Cmdlet          UpgradeCompleted New-AzureRmNetworkS...
12    compute-create-dockerhost.ps1:26:15                        Cmdlet          UpgradeCompleted New-AzureRmNetworkS...
13    compute-create-dockerhost.ps1:22:8                         Cmdlet          UpgradeCompleted New-AzureRmPublicIp...
14    compute-create-dockerhost.ps1:18:9                         Cmdlet          UpgradeCompleted New-AzureRmVirtualN...
15    compute-create-dockerhost.ps1:15:17                        Cmdlet          UpgradeCompleted New-AzureRmVirtualN...
16    compute-create-dockerhost.ps1:12:1                         Cmdlet          UpgradeCompleted New-AzureRmResource...
17    compute-create-windowsvm-quick.ps1:18:3                    CmdletParameter UpgradeCompleted ImageName
18    compute-create-windowsvm-quick.ps1:14:1                    Cmdlet          UpgradeCompleted New-AzureRmVM
19    compute-create-windowsvm-quick.ps1:11:1                    Cmdlet          UpgradeCompleted New-AzureRmResource...
20    compute-create-wordpress-mysql.ps1:59:24                   CmdletParameter UpgradeCompleted ExtensionName
...
Om några fel returneras kan du titta närmare på felresultatet med följande kommando:
# Filter results to show only errors
$Results | Where-Object UpgradeResult -ne UpgradeCompleted | Format-List
Order                  : 42
UpgradeType            : CmdletParameter
UpgradeResult          : UnableToUpgrade
UpgradeSeverity        : Error
UpgradeResultReason    : Parameter was not found in Get-AzResource or it's aliases.
SourceCommand          : CommandReference
SourceCommandParameter : CommandReferenceParameter
Location               : devtestlab-add-marketplace-image-to-lab.ps1:14:74
FullPath               : C:\Scripts\devtestlab-add-marketplace-image-to-lab.ps1
StartOffset            : 556
Original               : ResourceNameEquals
Replacement            :
Begränsningar
- Fil-I/O-åtgärder använder standardkodning. Ovanliga filkodningssituationer kan orsaka problem.
- AzureRM-cmdletar som skickas som argument till Testuttryck för Pester-enhetstest identifieras inte.
Rapportera problem
Rapportera feedback och problem om PowerShell-modulen Az.Tools.Migration via ett GitHub-problem på lagringsplatsen azure-powershell-migration .
Nästa steg
- Migreringssteg
- Migrera PowerShell-skript automatiskt
- Introduktion till Az PowerShell-modulen
- Ändringar mellan AzureRM och Az
- Installera Az PowerShell-modulen
- Avinstallera AzureRM
Mer information om Az PowerShell-modulen finns i Azure PowerShell-dokumentationen
Azure PowerShell