使用标签配置Azure VM定时启动遇Login-AzureRmAccount登录错误如何解决
Azure自动化账户虚拟机调度脚本登录错误解决方法
错误原因
该报错核心为AzureRM模块未正确加载、版本不兼容,或运行环境存在模块冲突,配合脚本拼写错误也会导致执行失败,对应解决方法如下:
1. 确认AzureRM模块已正确导入自动化账户
- 进入Azure自动化账户控制台,在左侧「共享资源」分类下选择「模块」
- 检查已安装模块列表中是否存在
AzureRM.profile和AzureRM.Compute,若缺失需从模块库搜索安装稳定版本(推荐6.13.1及以上) - 模块安装完成后等待10-15分钟再重新执行Runbook测试
2. 修复脚本兼容性问题
如果自动化账户同时安装了Az模块(微软官方推荐的新一代Azure PowerShell模块,AzureRM已停止维护),建议将脚本迁移到Az模块彻底解决兼容问题,替换后的完整脚本如下:
# 获取Azure自动化运行方式账户连接信息 $azConn = Get-AutomationConnection -Name 'AzureRunAsConnection' # 使用运行方式账户身份登录Azure Connect-AzAccount -ServicePrincipal -Tenant $azConn.TenantID -ApplicationId $azConn.ApplicationId -CertificateThumbprint $azConn.CertificateThumbprint # 筛选所有带有StartTime:10am标签的虚拟机 $azVMs = Get-AzVM | Where-Object {$_.Tags.StartTime -eq '10am'} # 批量启动筛选到的虚拟机 $azVMs | Start-AzVM
如果需要保留原有AzureRM脚本,可在脚本最开头添加强制加载模块的代码:
Import-Module AzureRM.profile -Force
3. 修正脚本拼写错误
你提供的原有脚本最后一行变量为$azVMS(末尾S大写),与前面定义的$azVMs(末尾s小写)不一致,即使登录成功也会执行失败,需修正为相同变量名。
4. 确认运行方式账户权限与有效期
- 检查自动化账户的「运行方式账户」是否已过期,若过期需重新续期
- 确认运行方式账户的服务主体已分配对应虚拟机/资源组的虚拟机启动权限,至少包含
Microsoft.Compute/virtualMachines/start/action操作权限
内容的提问来源于stack exchange,提问作者esngsrj
相关产品推荐
相关产品推荐

