如何将Azure自动化Runbook的PowerShell从5.1升级至7.1
升级Azure自动化Runbook至PowerShell 7.1的方法
Azure自动化中,已创建的PowerShell 5.1 Runbook无法直接修改运行版本,需通过迁移方式完成升级,具体步骤如下:
导出现有PowerShell 5.1 Runbook
登录Azure门户,进入目标自动化账户,在左侧菜单选择「Runbooks」,选中要升级的Runbook,点击顶部的「导出」按钮,将Runbook内容保存为本地.ps1文件。创建新的PowerShell 7.1 Runbook
在同一自动化账户的「Runbooks」页面,点击「创建Runbook」:- 输入Runbook名称(建议先使用临时名称,比如原名称加
_v7后缀用于测试) - 「Runbook类型」选择「PowerShell 7.1」
- 点击「创建」进入编辑界面
- 输入Runbook名称(建议先使用临时名称,比如原名称加
导入代码并做兼容性调整
在新Runbook的编辑界面,点击顶部「导入」,选择之前导出的.ps1文件完成导入。之后需检查并调整代码:- 替换PowerShell 5.1专属语法:比如避免使用已弃用的AzureRM模块,改用Az模块(PowerShell 7对Az模块支持更完善)
- 修正版本兼容问题:比如PowerShell 7优化了部分管道行为、新增了语法特性,需确保原有代码无语法错误
- 验证依赖模块:在自动化账户的「模块」菜单中,确认代码依赖的模块有PowerShell 7兼容的版本,若缺失需安装或更新对应模块
测试新Runbook
点击编辑界面顶部的「测试窗格」,运行测试,检查输出结果、日志是否与原Runbook一致,确保功能正常。切换生产环境指向新Runbook
测试通过后,可将原Runbook的计划、Webhook等关联配置切换到新Runbook上;若需要保留原名称,可删除旧Runbook后将新Runbook重命名为原名称。
注意事项
- 原Runbook的Webhook无法直接迁移,需为新Runbook重新创建Webhook
- 确保自动化账户已启用PowerShell 7.1运行环境(当前Azure自动化默认支持,若未启用可在自动化账户的「运行时环境」中配置)
- 建议暂时保留原Runbook,待新Runbook稳定运行一段时间后再删除
内容的提问来源于stack exchange,提问作者Jørgen Lindskov Knudsen
相关产品推荐
相关产品推荐

