PowerShell-scripts automatisch migreren van AzureRM naar de Az-module voor PowerShell
In dit artikel leert u hoe u de PowerShell-module Az.Tools.Migration kunt gebruiken om uw PowerShell-scripts en -scriptmodules automatisch te upgraden van AzureRM naar de Az-module voor PowerShell. Raadpleeg Azure PowerShell migreren van AzureRM naar Az voor aanvullende migratieopties.
Waarschuwing
De AzureRM PowerShell-module is vanaf 29 februari 2024 officieel afgeschaft. Gebruikers wordt aangeraden om van AzureRM naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen.
Hoewel de AzureRM-module nog steeds kan functioneren, wordt deze niet meer onderhouden of ondersteund, waardoor het gebruik naar eigen goeddunken en risico van de gebruiker blijft bestaan. Raadpleeg onze migratiebronnen voor hulp bij de overgang naar de Az-module.
Vereisten
Werk uw bestaande PowerShell-scripts bij naar de nieuwste versie van de AzureRM PowerShell-module (6.13.1).
Installeer de PowerShell-module AZ.Tools.Migration.
Install-Module -Name Az.Tools.Migration
Stap 1: Een upgradeplan genereren
U gebruikt de cmdlet New-AzUpgradeModulePlan
om een upgradeplan te genereren voor het migreren van uw scripts en modules naar de Az-module voor PowerShell. Met deze cmdlet worden geen wijzigingen aangebracht in uw bestaande scripts. Gebruik de parameter FilePath
als u een specifiek script wilt gebruiken als doel of de parameter DirectoryPath
als u alle scripts in een specifieke map wilt gebruiken als doel.
Notitie
Met de cmdlet New-AzUpgradeModulePlan
wordt het plan niet uitgevoerd, maar worden alleen de upgradestappen gegenereerd.
In het volgende voorbeeld wordt een plan gegenereerd voor alle scripts in de map C:\Scripts
. De parameter OutVariable
is opgegeven, zodat de resultaten worden geretourneerd en tegelijkertijd worden opgeslagen in een variabele met de naam 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
Zoals u ziet in de volgende uitvoer, beschrijft het upgradeplan de specifieke bestands- en offsetpunten die moeten worden gewijzigd wanneer u overstapt van AzureRM naar de Az-cmdlets voor PowerShell.
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
...
Voordat u de upgrade uitvoert, moet u de resultaten van het plan controleren op problemen. In het volgende voorbeeld wordt een lijst met scripts en de items in die scripts geretourneerd die voorkomen dat deze automatisch worden bijgewerkt.
# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List
De items die in de volgende uitvoer worden weergegeven, worden niet automatisch bijgewerkt zonder eerst de problemen handmatig te corrigeren.
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 :
Stap 2: de upgrade uitvoeren
Let op
Er is geen bewerking voor ongedaan maken. Zorg er altijd voor dat u een back-up hebt van de PowerShell-scripts en -modules die u wilt bijwerken.
Als u tevreden bent met het plan, wordt de upgrade uitgevoerd met de cmdlet Invoke-AzUpgradeModulePlan
. Geef SaveChangesToNewFiles
op als waarde voor de parameter FileEditMode
om te voorkomen dat er wijzigingen in de oorspronkelijke scripts worden aangebracht. Wanneer u deze modus gebruikt, wordt de upgrade uitgevoerd door een kopie te maken van elk doelscript waarvoor _az_upgraded
is toegevoegd aan de bestandsnaam.
Waarschuwing
De cmdlet Invoke-AzUpgradeModulePlan
is destructief wanneer de optie -FileEditMode ModifyExistingFiles
wordt opgegeven. Het wijzigt uw scripts en functies op basis van het module-upgradeplan dat is gegenereerd door de cmdlet New-AzUpgradeModulePlan
. Geef voor de niet-destructieve optie -FileEditMode SaveChangesToNewFiles
op.
# 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
...
Als er fouten worden geretourneerd, kunt u de foutresultaten nader bekijken door de volgende opdracht uit te voeren:
# 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 :
Beperkingen
- I/O-bewerkingen voor bestanden gebruiken standaardcodering. Situaties met ongebruikelijke bestandscoderings kunnen problemen veroorzaken.
- AzureRM-cmdlets die worden doorgegeven als argumenten voor testinstructeis voor Pester-eenheidstests worden niet gedetecteerd.
Problemen melden
Meld feedback en problemen met de PowerShell-module Az.Tools.Migration via een GitHub-probleem in de opslagplaats azure-powershell-migration
.
Volgende stappen
- Migratiestappen
- PowerShell-scripts automatisch migreren
- Inleiding tot de Az PowerShell-module
- Wijzigingen tussen AzureRM en Az
- De Az PowerShell-module installeren
- AzureRM verwijderen
Raadpleeg de documentatie van Azure PowerShell voor meer informatie over de Az-module voor PowerShell