Azure VM安装任意扩展时出现ErrorLoadingExtensionAndDefinition错误
Azure VM扩展安装报错
ErrorLoadingExtensionAndDefinition(EastUS区域) 问题详情
- 操作目标:为EastUS区域的Windows VM重新安装Custom Script Extension(曾成功安装后删除),用于运行PowerShell脚本部署IIS
- 故障现象:进入「设置>扩展+应用」点击「+添加」时触发
ErrorLoadingExtensionAndDefinition,所有扩展均受影响,并非仅Custom Script Extension - 已完成排查:
- 清除浏览器缓存、更换浏览器及使用隐身模式测试
- 确认Azure VM Agent状态为Ready且在VM上正常运行
- 在带pfBlockerNG的pfSense防火墙中创建规则,允许LAN到WAN访问13.107.246.10:443
- 同区域新建VM测试,故障依旧
- 检查Azure Service Health,EastUS区域无故障报告
解决方案尝试
1. 补充防火墙/代理的Azure服务端点权限
除已放行的13.107.246.10,VM需访问的扩展相关服务端点还包括:
*.azure-extensions.msmanagement.azure.comlogin.microsoftonline.com
在pfBlockerNG中确认这些域名/IP段未被拦截,同时确保VM出站规则允许HTTPS(443)访问上述地址。
2. 手动重置Azure VM Agent
即使Agent状态显示Ready,仍可尝试重置修复:
- 登录VM,打开「服务」找到
Windows Azure Guest Agent - 停止服务,删除
C:\Packages\Plugins\Microsoft.CPlat.Core.WindowsAzureGuestAgent目录下所有内容 - 重新启动服务,等待5分钟后再尝试安装扩展
3. 用命令行绕过Portal安装扩展
若Portal界面持续报错,可通过Azure CLI/PowerShell直接部署:
PowerShell示例(安装Custom Script Extension):
Set-AzVMCustomScriptExtension -ResourceGroupName "你的资源组名" ` -VMName "你的VM名" ` -Name "CustomScriptExtension" ` -Location "EastUS" ` -FileUri "你的PowerShell脚本存储URL(如Azure Blob)" ` -Run "脚本文件名.ps1"
Azure CLI示例:
az vm extension set --resource-group 你的资源组名 --vm-name 你的VM名 --name CustomScriptExtension --publisher Microsoft.Compute --settings '{"fileUris": ["你的脚本URL"]}' --protected-settings '{"commandToExecute": "powershell -ExecutionPolicy Unrestricted -File 脚本文件名.ps1"}'
4. 检查VM系统更新与.NET框架版本
Windows VM的.NET框架版本过低可能导致扩展定义加载失败,确保VM安装了最新Windows更新,且已安装.NET Framework 4.7.2或更高版本。
5. 确认订阅的资源提供商注册状态
检查Microsoft.Compute资源提供商是否已注册:
- 登录Azure Portal,进入「订阅」> 选择目标订阅 > 「资源提供商」
- 找到
Microsoft.Compute,确认状态为「已注册」,未注册则点击「注册」
内容的提问来源于stack exchange,提问作者Iheb Alimi
相关产品推荐
相关产品推荐

