为什么Azure自动化账户的VM纵向扩展Runbook运行时TenantId参数验证失败
报错可能的原因如下
- 模块版本不匹配:你使用的VM伸缩Runbook基于老旧的AzureRM PowerShell模块开发,若自动化账户内的
AzureRM.Profile模块版本过旧、或者与其他已安装模块存在依赖冲突,会导致解析AzureRunAsConnection属性的逻辑异常,无法正常读取Tenant.Id属性值。 - 连接名称拼写错误:检查Runbook开头获取RunAs连接的代码,确认连接名称是否严格匹配
AzureRunAsConnection:
若名称存在拼写错误、大小写偏差,获取到的$runAsConnectionProfile = Get-AutomationConnection -Name "AzureRunAsConnection"$runAsConnectionProfile本身为空,后续调用.Tenant.Id自然返回空值。 - Run As账户运行态属性缺失:虽然门户侧显示租户ID配置正常,但若Run As账户的客户端证书已过期、对应的服务主体被禁用/删除、或者自动化账户的托管身份权限被回收,运行时拉取的连接对象会出现属性缺失,无法拿到租户ID值。
- 模块兼容冲突:若自动化账户同时安装了AzureRM和Az两个系列的PowerShell模块,且开启了Az的AzureRM别名兼容开关,
Add-AzureRmAccount会被重定向到Az模块的Connect-AzAccount,两个命令的参数解析逻辑存在差异,会触发TenantId绑定校验失败。 - 测试环境运行异常:若你是在门户的测试窗格中运行Runbook触发的报错,部分租户的自动化测试环境会偶发连接属性拉取失败的问题,可将Runbook发布后通过正式作业运行验证。
内容的提问来源于stack exchange,提问作者abinitio
相关产品推荐
相关产品推荐

