PowerShell-scripts automatisch migreren van AzureRM naar de Az PowerShell-module
In dit artikel leert u hoe u de PowerShell-module Az.Tools.Migration gebruikt om automatisch uw PowerShell-scripts en scriptmodules van AzureRM te upgraden naar de Az PowerShell-module. Zie Azure PowerShell migreren van AzureRM naar Azvoor 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.
Eisen
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 PowerShell-module. Met deze cmdlet worden uw bestaande scripts niet gewijzigd. Gebruik de parameter FilePath
voor het instellen van een specifiek script of de parameter DirectoryPath
voor het instellen van alle scripts in een specifieke map.
Notitie
De New-AzUpgradeModulePlan
-cmdlet voert het plan niet uit, maar genereert alleen de upgradestappen.
In het volgende voorbeeld wordt een plan gegenereerd voor alle scripts in de map C:\Scripts
. De parameter OutVariable
wordt 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 in de volgende uitvoer wordt weergegeven, worden in het upgradeplan de specifieke bestands- en offsetpunten beschreven waarvoor wijzigingen nodig zijn bij het overstappen van AzureRM naar de Az PowerShell-cmdlets.
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 voor problemen bekijken. In het volgende voorbeeld wordt een lijst met scripts en de items in deze scripts geretourneerd die verhinderen dat ze 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
Voorzichtigheid
Er is geen ongedaan maken-functie. Zorg er altijd voor dat u een back-up hebt van uw PowerShell-scripts en -modules die u wilt upgraden.
Nadat u tevreden bent met het plan, wordt de upgrade uitgevoerd met de Invoke-AzUpgradeModulePlan
cmdlet. Geef SaveChangesToNewFiles
op voor de parameterwaarde FileEditMode
om te voorkomen dat wijzigingen worden aangebracht in de oorspronkelijke scripts. Wanneer u deze modus gebruikt, wordt de upgrade uitgevoerd door van elk script een kopie te maken, waarbij _az_upgraded
aan de bestandsnamen wordt toegevoegd.
Waarschuwing
De Invoke-AzUpgradeModulePlan
cmdlet is destructief wanneer de -FileEditMode ModifyExistingFiles
optie is opgegeven. Het wijzigt uw scripts en functies op basis van het module-upgradeplan dat is gegenereerd door de New-AzUpgradeModulePlan
cmdlet. Geef voor de niet-destructieve optie in plaats daarvan -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 met de volgende opdracht:
# 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
- Bestands-I/O-bewerkingen maken gebruik van standaardcodering. Ongebruikelijke bestandscoderingssituaties kunnen problemen veroorzaken.
- AzureRM-cmdlets die als argumenten worden doorgegeven aan Pester unit test mock statements, worden niet herkend.
Hoe problemen te melden
Meld feedback en problemen met de PowerShell-module Az.Tools.Migration via een GitHub-probleem in de azure-powershell-migration
opslagplaats.
Volgende stappen
- Migratiestappen
- PowerShell-scripts automatisch migreren
- Introductie van de Az PowerShell-module
- wijzigingen tussen AzureRM en Az
- De Az PowerShell-module installeren
- AzureRM verwijderen
Zie de Azure PowerShell-documentatie voor meer informatie over de Az PowerShell-module
Azure PowerShell