You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

升级PowerShell Az模块后,传统Azure服务管理命令无法正常使用

解决Az模块与经典Azure服务管理模块共存的问题

你遇到的这个问题其实挺常见的——Az模块和旧的Azure服务管理模块(用来操作经典云服务这类资源)确实存在依赖冲突,因为服务管理模块依赖AzureRM.Profile,而Az和AzureRM模块根本不能在同一个PowerShell会话里同时加载。我来给你拆解下原因和可行的解决方案:

为什么会报错?

当你卸载了所有AzureRM模块后,运行Get-AzureService时,服务管理模块会尝试加载它依赖的AzureRM.Profile模块,但这个模块已经被你卸载了,所以就抛出了「目标调用异常」。而如果你更新Azure模块,它会自动安装AzureRM.Profile,但这个模块和Az模块的Az.Profile会在环境里冲突,导致两边都用不了。

可行的解决方案:会话隔离

目前微软还没有把经典服务管理的命令迁移到Az模块里,所以操作经典资源必须用旧的Azure模块。解决冲突的核心思路是把Az模块和服务管理模块放在完全独立的PowerShell会话里使用,具体步骤如下:

1. 处理Az模块操作(ARM资源)

  • 打开一个全新的PowerShell窗口(普通或管理员权限都可以)
  • 直接运行Connect-AzAccount登录你的Azure账号
  • 在这里执行所有Az相关的命令(比如Get-AzVM、New-AzResourceGroup等),不要导入任何Azure/AzureRM模块,完全用Az的命令集。

2. 处理经典服务管理操作(比如云服务)

  • 再打开一个全新的PowerShell窗口(和上面的窗口完全分开)
  • 如果还没安装服务管理模块,先运行:
    Install-Module -Name Azure -Force -AllowClobber
    
    这个命令会自动安装依赖的AzureRM.Profile,但不用担心,只要这个会话里不加载Az模块,就不会冲突。
  • 运行Add-AzureAccount登录你的Azure账号(注意是Add-AzureAccount,不是Az的Connect-AzAccount)
  • 现在就可以正常运行Get-AzureService、Set-AzureService这类经典服务管理命令了。

关键注意事项

  • 绝对不要在同一个PowerShell会话里同时加载Az和AzureRM/Azure模块,哪怕你尝试用Remove-Module卸载其中一个,也可能残留冲突的组件导致报错。
  • 如果需要在两类操作之间切换,直接关闭当前会话,打开新的会话即可,这是最稳妥的方式。
  • 如果你担心模块版本混乱,可以用Get-Module -ListAvailable查看已安装的模块,确认Az和AzureRM的模块都存在,但只要不同会话加载就没问题。

内容的提问来源于stack exchange,提问作者RMD

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:47:58