因此,我尝试使用 Amazons Ec2Config.exe -sysprep 命令对实例进行 sysprep 并准备将其克隆到新的 AMI 中,并安装我需要的程序。以下是我在这个特定的 powershell.ps1 脚本中运行的最后两行代码,它们似乎是横向的(我尝试了几种不同的执行 .exe 的方法,都产生了相同的结果):
cd "C:\Program Files\Amazon\Ec2ConfigService\"
./Ec2Config.exe -sysprep
如果我将这些行注释掉,登录到实例并手动运行完全相同的命令,事情就会按预期工作(这意味着所有相关的 xml 文件都已正确配置)。
现在,这就是有趣的地方。当这些行没有被注释掉并且脚本运行它们时,我可以登录到正在运行脚本的实例并通过进程资源管理器查看正在运行的 sysprep 进程,但它永远不会完成并且实例过早关闭。
我相信在这一点上,考虑到我可以看到进程在进程资源管理器中运行,我已经排除它是权限错误(脚本正在以“NT AUTHORITY\SYSTEM”用户的身份运行,并且 RunLevel 设置为最高)。
我的直觉告诉我,这与 Ec2config.exe -sysprep 不允许您为 sysprep 传递“/quiet”选项这一事实有关,但我不确定这是否重要。
有任何想法吗?