使用托管身份运行Azure VM启动Runbook的报错问题求助
问题根因
你当前报错的核心原因是混用了已弃用的AzureRM模块和新一代Az模块,两个模块的登录上下文不互通:
Connect-AzAccount -Identity是Az模块的身份验证命令,验证后生成的登录凭证仅对Az模块下的命令生效Start-AzureRmVM属于旧版AzureRM模块的命令,无法读取Az模块的登录凭证,因此会触发未登录的报错
解决方案
1. 统一使用Az模块命令(推荐,符合微软官方弃用AzureRM的要求)
修改后的完整可用脚本如下:
# 系统分配托管身份登录 # 若使用用户分配托管身份,需补充参数 -AccountId <用户分配托管身份的客户端ID> # 若为国内世纪互联Azure环境,需补充参数 -Environment AzureChinaCloud Connect-AzAccount -Identity $ResourceGroupName = 'test' $AzureVMName = 'test' "Starting Azure VM..." # 替换旧AzureRM模块命令为Az模块对应命令 Start-AzVM -Name $AzureVMName -ResourceGroupName $ResourceGroupName
2. 检查前置配置
- 确认你的Azure自动化账户中已导入版本一致的
Az.Accounts、Az.Compute模块 - 确认自动化账户使用的托管身份,已被分配目标VM所属资源组的虚拟机参与者权限,具备启动VM的操作权限
内容的提问来源于stack exchange,提问作者stevenvd
相关产品推荐
相关产品推荐

