You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows EC2实例用户脚本无法加载问题求助

问题分析与解决方案

关键错误点解析

从UserdataExecution.log日志中可定位核心问题:

  • 系统误判<script>标签格式不规范,错误识别为要执行PowerShell内容
  • 后续出现元数据获取失败,返回空UserData,导致脚本完全未执行
  • 启动脚本仅在登录后运行,无法满足无登录自动执行的需求

修复步骤

1. 修正用户数据脚本格式

Windows EC2的用户数据中,<script>标签用于执行CMD命令,需确保格式合规且避免与PowerShell标签混淆。修改后的脚本如下:

<script>
net use F: \\fssome_value.amazonaws.com\fsx /persistent:yes
xcopy /y F:\Name C:\inetpub\wwwroot\Name /e /i
</script>
  • 用net use替代mount(Windows挂载SMB共享的标准命令)
  • 添加/persistent:yes确保挂载在重启后保留
  • xcopy增加/i参数,目标目录不存在时自动创建,避免交互提示

2. 确保用户数据正确传递

  • 重启实例时需重新指定正确的用户数据(EC2默认不保留旧用户数据,除非配置persist标签)
  • 若需每次启动都执行脚本,添加<persist>true</persist>标签,完整示例:
<persist>true</persist>
<script>
net use F: \\fssome_value.amazonaws.com\fsx /persistent:yes
xcopy /y F:\Name C:\inetpub\wwwroot\Name /e /i
</script>

3. 验证元数据服务可用性

  • 实例启动后,可通过RDP登录执行curl http://169.254.169.254/latest/user-data,确认返回的用户数据是否正确
  • 若返回为空,检查实例所在VPC的路由表、安全组是否阻止了对169.254.169.254的访问

4. 手动触发用户数据执行(排障用)

若实例已启动但脚本未执行,可手动运行EC2用户数据服务:

  1. 打开管理员权限的命令提示符
  2. 执行:cd C:\Program Files\Amazon\EC2ConfigService\Scripts
  3. 运行:.\Ec2Config.exe /UserData
  4. 查看C:\Program Files\Amazon\EC2ConfigService\Logs\UserdataExecution.log确认执行结果

5. 替代方案:使用EC2启动模板或CloudFormation

  • 用启动模板固化用户数据,确保每次启动实例都自动加载正确脚本
  • 通过CloudFormation模板定义实例时,直接在UserData字段嵌入格式正确的脚本,避免手动输入错误

内容的提问来源于stack exchange,提问作者Shibin Christin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 11:11:16