你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

将 Azure PowerShell 从 AzureRM 迁移到 Az

AzureRM PowerShell 模块的所有版本均已过时。 若要与 Azure 进行交互,现建议使用的 PowerShell 模块是 Az PowerShell 模块

重要

由于 Az PowerShell 模块现在已具有 AzureRM PowerShell 模块的所有功能及更多功能,因此我们将于 2024 年 2 月 29 日停用 AzureRM PowerShell 模块。

若要避免服务中断,请更新脚本,在 2024 年 2 月 29 日结束之前将使用 AzureRM PowerShell 模块的脚本更新为使用 Az PowerShell 模块。 若要自动更新脚本,请按照快速入门指南操作。

为何使用新模块?

最大且最重要的改变是,基于 .NET Standard 库的 PowerShell 自引入到现在已经成为一款跨平台的产品。

与 PowerShell 语言一样,我们致力于为所有平台提供 Azure 支持。 这意味着需要更新 Azure PowerShell 模块才能使用 .NET Standard 并与 PowerShell Core 兼容。 为了添加此支持,我们创建了 Az 模块,而不是修改现有的 AzureRM 模块并引入复杂的变化。

通过创建新模块,也让我们的工程师能够使 cmdlet 和模块的设计及命名保持一致。 所有模块现在都以 Az. 前缀开头,cmdlet 都使用 Verb-AzNoun 命名约定。 以前,cmdlet 名称较长且不一致。

模块数量减少了:合并了某些使用相同服务的模块。 同一服务的管理平面和数据平面 cmdlet 现在包含在同一个模块中。 这一合并可以大大方便那些手动管理依赖项和导入内容的用户。

我们的团队始终致力于简化 Azure 与 PowerShell cmdlet 的配合使用方式,使之与以前相比能够在尽可能多的平台上使用,因此进行了这些重要更改。

升级到 Az PowerShell

为 AzureRM cmdlet 编写的脚本不会自动与 Az 配合工作。 为了更轻松地转换,我们开发了 AzureRM 到 Az 迁移工具包。 不迁移到新的命令集十分省事,但本文将帮助你开始转换到 Az PowerShell 模块。 若要详细了解创建 Az PowerShell 模块的目的,请参阅有关新的 Azure Powershell Az 模块的简介

新 cmdlet 名称已设计为易于学习。 请在 cmdlet 名称中使用 Az,而不是使用 AzureRmAzure。 例如,旧 cmdlet New-AzureRMVm 已变为 New-AzVm。 但是,在进行迁移时,不能仅仅熟悉新的 cmdlet 名称就可以了。 还必须了解重命名的模块、参数以及其他重要更改。

若要查看从 AzureRM 到 Az 的中断性变更的完整列表,请参阅从 AzureRM 到 Az 的全部变更

确保现有脚本兼容最新的 AzureRM 版本

在执行任何迁移步骤之前,请检查系统上安装了 AzureRM 的哪些版本。 这样做可以确保脚本已在最新版本上运行,并了解哪些 AzureRM 版本必须卸载。

若要检查已安装 AzureRM 的哪个(些)版本,请运行以下示例:

Get-Module -Name AzureRM -ListAvailable -All

AzureRM 的最新发布版本为 6.13.2 。 如果尚未安装此版本,则除了本文和中断性变更列表中描述的内容,现有脚本可能还需要进行其他修改才能使用 Az 模块。

如果脚本不兼容 AzureRM 6.13.2,请按照 AzureRM 5.x 到 6.x 迁移指南中的说明对其进行更新。 如果使用更低版本的 AzureRM 模块,请参阅每个主要版本的迁移指南。

此推荐选项可最大程度减少将 AzureRM 脚本迁移到 Az 所需的工作量。

将 AzureRM 安装到 Az 迁移工具包中

Install-Module -Name Az.Tools.Migration

自动转换脚本

借助 AzureRM 到 Az 迁移工具包,你可生成一个计划来确定在对脚本执行任何修改之前,以及在安装到 Az PowerShell 模块之前,将在这些脚本上进行哪些更改。

自动将 PowerShell 脚本从 AzureRM 迁移到 Az PowerShell 模块快速入门可指导你完成将 PowerShell 脚本从 AzureRM 自动更新到 Az PowerShell 模块的整个过程。

选项 2:结合使用兼容模式和 Enable-AzureRmAlias

Az 模块提供了一个兼容模式,方便你在更新到新语法期间使用现有脚本。 Enable-AzureRmAlias cmdlet 通过别名实现了兼容模式。 通过此模式,在使用现有脚本时只需最小程度的修改就可以完整迁移到 Az。 默认情况下,Enable-AzureRmAlias 仅为当前的 PowerShell 会话启用兼容别名。 使用其 Scope 参数在 PowerShell 会话中永久保存兼容别名。 有关详细信息,请参阅 Enable-AzureRmAlias 参考文档

重要

对于 Az cmdlet 来说,即使 cmdlet 名称使用了别名,也仍然可能存在新的(或重命名的)参数或更改的返回值。 不要期望让别名为你处理迁移事项! 请参阅中断性变更完整列表,了解在什么情况下可能需要对脚本进行更新。

选项 3:使用 Azure PowerShell 扩展迁移 Visual Studio Code 中的脚本

安装适用于 Visual Studio Code 的 Azure PowerShell 扩展

安装适用于 VSCode 的 Azure PowerShell 扩展

手动转换脚本

  1. 在 VSCode 中加载 AzureRM 脚本
  2. 通过打开命令面板 Ctrl+Shift+P 开始迁移,然后选择 Migrate Azure PowerShell script
  3. 选择源版本 AzureRM
  4. 针对每个带下划线的命令或参数执行建议的操作。

后续步骤