Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы узнаете, как использовать модуль PowerShell Az.Tools.Migration для автоматического обновления ваших скриптов PowerShell и модулей скриптов с AzureRM на модуль Az PowerShell. Для получения дополнительных вариантов миграции смотрите Миграция Azure PowerShell с AzureRM на Az.
Предупреждение
Модуль AzureRM PowerShell официально объявлен устаревшим с 29 февраля 2024 года. Пользователям рекомендуется перейти с AzureRM на модуль Az PowerShell, чтобы обеспечить продолжение поддержки и обновлений.
Хотя модуль AzureRM может по-прежнему функционировать, он больше не поддерживается и не обслуживается, поэтому его дальнейшее использование осуществляется на усмотрение и риск пользователя. Пожалуйста, обратитесь к нашим ресурсам по миграции, чтобы получить рекомендации по переходу на модуль Az.
Требования
Обновите свои существующие скрипты PowerShell до последней версии модуля AzureRM PowerShell (6.13.1).
Установите модуль Az.Tools.Migration PowerShell.
Install-Module -Name Az.Tools.Migration
Шаг 1. Создание плана обновления
Командлет New-AzUpgradeModulePlan
используется для создания плана обновления для переноса скриптов и модулей в модуль Az PowerShell. Этот командлет не вносит изменений в ваши существующие скрипты. Используйте параметр FilePath
, чтобы нацелиться на конкретный скрипт, или параметр DirectoryPath
, чтобы нацелиться на все скрипты в определенной папке.
Замечание
Команда New-AzUpgradeModulePlan
не выполняет план, она только создает шаги для обновления.
Следующий пример создает план для всех скриптов в папке C:\Scripts
. Параметр OutVariable
указан таким образом, чтобы результаты были возвращены и одновременно сохранены в переменной с именем 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
Как показано в следующем выводе, план обновления детализирует конкретные файлы и точки смещения, которые требуют изменений при переходе с AzureRM на 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
...
Перед выполнением обновления вам необходимо просмотреть результаты плана на наличие проблем. Следующий пример возвращает список скриптов и элементы в этих скриптах, которые помешают их автоматическому обновлению.
# Filter plan results to only warnings and errors
$Plan | Where-Object PlanResult -ne ReadyToUpgrade | Format-List
Элементы, показанные в следующем выводе, не будут обновлены автоматически без предварительного ручного исправления проблем.
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 :
Шаг 2: Выполните обновление
Осторожность
Операция отмены отсутствует. Всегда убедитесь, что у вас есть резервная копия скриптов и модулей PowerShell, которые вы пытаетесь обновить.
После того как вы удовлетворены планом, обновление выполняется с помощью команды Invoke-AzUpgradeModulePlan
. Укажите SaveChangesToNewFiles
для значения параметра FileEditMode
, чтобы предотвратить внесение изменений в исходные скрипты. При использовании этого режима обновление выполняется путем создания копии каждого скрипта с добавлением к именам файлов суффикса _az_upgraded
.
Предупреждение
Командлет Invoke-AzUpgradeModulePlan
работает разрушительно при указании параметра -FileEditMode ModifyExistingFiles
! Он изменяет ваши скрипты и функции непосредственно на месте в соответствии с планом обновления модуля, созданным с помощью командлета New-AzUpgradeModulePlan
. Вместо этого для неразрушающего параметра укажите -FileEditMode SaveChangesToNewFiles
.
# 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
...
Если были возвращены какие-либо ошибки, вы можете более подробно изучить результаты ошибок с помощью следующей команды:
# 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 :
Ограничения
- Операции ввода-вывода файлов используют кодировку по умолчанию. Необычные ситуации кодировки файлов могут вызвать проблемы.
- Командлеты AzureRM, переданные в качестве аргументов в макетных инструкциях для модульных тестов Pester, не распознаются.
Как сообщить о проблемах
Сообщайте отзывы и проблемы, связанные с модулем PowerShell Az.Tools.Migration, через вопрос на GitHub в репозитории azure-powershell-migration
.
Дальнейшие шаги
- Этапы миграции
- Автоматическая миграция скриптов PowerShell
- Знакомство с модулем Az PowerShell
- Изменения между AzureRM и Az
- Установите модуль Az PowerShell.
- \Деинсталлируйте AzureRM \
Чтобы узнать больше о модуле Az PowerShell, см. документацию Azure PowerShell.
Azure PowerShell