Lezen in het Engels

Delen via


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.

    PowerShell
    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.

PowerShell
# 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.

Output
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.

PowerShell
# 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.

Output
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

Waarschuwing

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.

PowerShell
# Execute the automatic upgrade plan and save the results to a variable.
Invoke-AzUpgradeModulePlan -Plan $Plan -FileEditMode SaveChangesToNewFiles -OutVariable Results
Output
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:

PowerShell
# Filter results to show only errors
$Results | Where-Object UpgradeResult -ne UpgradeCompleted | Format-List
Output
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

Zie de Azure PowerShell-documentatie voor meer informatie over de Az PowerShell-module