Azure Runbook执行报错:找不到AzureRmProfileProvider类求解决方案
解决Azure Runbook中找不到
Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider类的问题 最近在Azure环境里折腾PowerShell Runbook的时候碰上个棘手的问题——脚本直接报错说找不到Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider类,有没有懂行的朋友帮忙支个招,告诉我怎么在脚本里搞定这个类的引用呀?
我的脚本片段如下:
[CmdletBinding()] [OutputType([string])] Param ( # VM Name [Parameter(Mandatory = $true, ValueFromPipelineByPropertyName = $true, Position = 0)] $VMName ) $VerbosePreference = ...
可能的解决方案
这个类属于Azure旧版PowerShell模块的身份验证组件,下面是几个可行的解决方向:
确保依赖模块已安装并导入
这个类来自AzureRM.Authentication模块,你可以在Runbook开头添加模块导入(或安装)的命令:# 如果模块未安装,先安装(自动化账户环境可能需要提前配置权限) Install-Module -Name AzureRM.Authentication -Force -AllowClobber -Scope CurrentUser # 导入模块 Import-Module AzureRM.Authentication如果是Azure自动化账户中的Runbook,更稳妥的方式是先在自动化账户的「模块」页面中添加
AzureRM.Authentication模块,避免每次运行都安装。迁移到Az模块(推荐方案)
Azure现在已经不再维护AzureRM模块,官方推荐使用Az模块。你可以替换成Az模块中的对应组件,比如:# 导入Az.Accounts模块 Import-Module Az.Accounts # 获取当前身份验证上下文 $profile = [Microsoft.Azure.Commands.Common.Authentication.Abstractions.AzureRmProfileProvider]::Instance.Profile $currentContext = Get-AzContext同样,需要确保自动化账户中已经添加了
Az.Accounts模块。检查模块版本兼容性
有时候报错是因为模块版本过旧或不兼容。你可以到Azure自动化账户的「模块」页面,查看AzureRM.Authentication或Az.Accounts模块的版本,更新到稳定版本后再测试脚本。
内容的提问来源于stack exchange,提问作者Brandon Michael Hunter
相关产品推荐
相关产品推荐

