Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule dowiesz się, jak używać modułu Az.Tools.Migration programu PowerShell, aby automatycznie uaktualnić swoje skrypty PowerShell i moduły skryptów z AzureRM do modułu Az PowerShell. Aby uzyskać dodatkowe opcje migracji, zobacz Migrowanie programu Azure PowerShell z modułu AzureRM do modułu Az.
Ostrzeżenie
Moduł AzureRM PowerShell został oficjalnie uznany za przestarzały z dniem 29 lutego 2024 r. Zaleca się migrowanie użytkowników z modułu AzureRM do modułu Az programu PowerShell w celu zapewnienia ciągłej obsługi i aktualizacji.
Mimo że moduł AzureRM może nadal działać, nie jest już utrzymywany ani obsługiwany, co oznacza, że wszelkie dalsze użytkowanie odbywa się na własną odpowiedzialność i ryzyko użytkownika. Zapoznaj się z naszymi zasobami migracji, aby uzyskać wskazówki dotyczące przejścia do modułu Az.
Wymagania
Zaktualizuj istniejące skrypty programu PowerShell do najnowszej wersji modułu AzureRM PowerShell (6.13.1).
Zainstaluj moduł Az.Tools.Migration programu PowerShell.
Install-Module -Name Az.Tools.Migration
Krok 1. Generowanie planu uaktualniania
Polecenie cmdlet New-AzUpgradeModulePlan
służy do generowania planu aktualizacji w celu migracji skryptów i modułów do modułu Az w programie PowerShell. Ten cmdlet nie wprowadza żadnych zmian w istniejących skryptach. Użyj parametru FilePath
, aby wskazać określony skrypt jako docelowy, lub użyj parametru DirectoryPath
, aby wskazać wszystkie skrypty w określonym folderze jako docelowe.
Uwaga / Notatka
Polecenie cmdlet New-AzUpgradeModulePlan
nie wykonuje planu, tylko generuje kroki uaktualniania.
Poniższy przykład generuje plan dla wszystkich skryptów w folderze C:\Scripts
. Parametr OutVariable
jest określony, więc wyniki są zwracane i jednocześnie przechowywane w zmiennej o nazwie 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
Jak pokazano w poniższych danych wyjściowych, plan aktualizacji zawiera szczegóły dotyczące określonego pliku i punktów przesunięcia, które wymagają zmian podczas przechodzenia z modułu AzureRM do cmdletów programu PowerShell Az.
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
...
Przed przeprowadzeniem uaktualnienia należy analizować plan pod kątem ewentualnych problemów. Poniższy przykład zwraca listę skryptów i elementów w tych skryptach, które uniemożliwią ich automatyczne uaktualnianie.
# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List
Elementy wyświetlane w poniższych danych wyjściowych nie zostaną automatycznie uaktualnione bez ręcznego rozwiązywania problemów.
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 :
Krok 2. Wykonanie uaktualnienia
Ostrzeżenie
Nie można cofnąć tej operacji. Zawsze upewnij się, że masz kopię zapasową skryptów i modułów programu PowerShell, które próbujesz uaktualnić.
Gdy jesteś zadowolony z planu, uaktualnienie jest wykonywane za pomocą polecenia cmdlet Invoke-AzUpgradeModulePlan
. Określ wartość SaveChangesToNewFiles
dla parametru FileEditMode
, aby zapobiec wprowadzeniu zmian w oryginalnych skryptach. W tym trybie uaktualnienie jest wykonywane przez utworzenie kopii każdego skryptu docelowego i dołączenie ciągu _az_upgraded
do nazw plików.
Ostrzeżenie
Polecenie cmdlet Invoke-AzUpgradeModulePlan
jest destrukcyjne, gdy określona jest opcja -FileEditMode ModifyExistingFiles
! Modyfikuje na miejscu skrypty i funkcje zgodnie z planem aktualizacji modułu, wygenerowanym przez polecenie cmdlet New-AzUpgradeModulePlan
. W przypadku opcji niedestrukcyjnej określ -FileEditMode SaveChangesToNewFiles
zamiast tego.
# 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
...
Jeśli zostaną zwrócone jakiekolwiek błędy, możesz przyjrzeć się bliżej wynikom błędów, używając następującego polecenia:
# 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 :
Ograniczenia
- Operacje we/wy plików używają domyślnego kodowania. Nietypowe sytuacje kodowania plików mogą powodować problemy.
- Polecenia cmdlet modułu AzureRM przekazane jako argumenty do makiet testów jednostkowych Pester nie są wykrywane.
Jak zgłaszać problemy
Zgłoś opinie i problemy dotyczące modułu Az.Tools.Migration programu PowerShell za pośrednictwem zgłoszenia na GitHubie w repozytorium azure-powershell-migration
.
Dalsze kroki
- Kroki migracji
- Automatyczne migrowanie skryptów programu PowerShell
- Wprowadzenie modułu Az PowerShell
- Zmiany między modułem AzureRM i modułem Az
- Zainstaluj moduł Az PowerShell
- Odinstaluj AzureRM
Aby dowiedzieć się więcej na temat modułu Azure PowerShell, zobacz dokumentację Azure PowerShell