amazon-web-services - 为通过 UserData 创建 AMI 准备 Windo

我正在按照本指南为 AMI 创建准备一个实例(“使用 EC2Launch 手动运行 Sysprep”部分): https://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2launch.html#ec2launch-sysprep

当我在第 7 步 (./SysprepInstance.ps1) 中运行脚本时,它会抛出有关设置变量的错误(关于无法设置这些变量,因为它们是只读的)。此错误来自第 37、38、39 行:

Set-Variable rootPath -Option Constant -Scope Local -Value (Join-Path $env:ProgramData -ChildPath "Amazon\EC2-Windows\Launch")
Set-Variable modulePath -Option Constant -Scope Local -Value (Join-Path $rootPath -ChildPath "Module\Ec2Launch.psd1")
Set-Variable scriptPath -Option Constant -Scope Local -Value (Join-Path $PSScriptRoot -ChildPath $MyInvocation.MyCommand.Name)

这些行似乎与 ./InitializeInstance.ps1 的第 64、65、66 行冲突:

Set-Variable rootPath -Option Constant -Scope Local -Value (Join-Path $env:ProgramData -ChildPath "Amazon\EC2-Windows\Launch")
Set-Variable modulePath -Option Constant -Scope Local -Value (Join-Path $rootPath -ChildPath "Module\Ec2Launch.psd1")
Set-Variable scriptPath -Option Constant -Scope Local -Value (Join-Path $PSScriptRoot -ChildPath $MyInvocation.MyCommand.Name)

在我上面提到的指南中,它建议手动运行这些脚本(在正确的文件夹中打开提示并运行这些脚本)。当我手动运行它们时它工作正常,因为我可以在运行 ./SysprepInstance.ps1 之前关闭终端。但是当我通过 UserData 运行它们时,我相信 ./InitializeInstance.ps1 将这些变量设置为只读,然后 ./SysprepInstance.ps1 抛出错误。 这会导致糟糕的 AMI,其中开始菜单不起作用,所有终端都很奇怪(powershell 有黑色背景,您无法滚动,cmd 提示默认启用键盘的 Insert 键,以及其他奇怪现象)。

这是我的用户数据脚本:

<powershell>
    cd "C:\ProgramData\Amazon\EC2-Windows\Launch\\Scripts\"
    ./InitializeInstance.ps1 -Schedule
    ./SysprepInstance.ps1
<powershell/>

有没有人知道如何通过 UserData 为 AMI 创建准备 Windows 2016 实例?

最佳答案

尝试不使用 ./SysprepInstance.ps1 PS 也使用 unix 风格的目录斜杠。 cd "C:/ProgramData/Amazon/EC2-Windows/Launch/Scripts/"

关于amazon-web-services - 为通过 UserData 创建 AMI 准备 Windows 2016 EC2 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54948905/

相关文章:

ansible - 如何获得 ansible playbook 运行更改的任务总数?

kubernetes - 如何在 OSX 上使用 Kubernetes 持久本地卷和 Minikub

unity3d - 应该如何使用 Unity 的 ExecuteEvents.Execute?

angular - 由于内存问题,compodoc 未生成图形

python-3.x - 在将多头 pandas 数据帧输出到 excel 时摆脱索引

json - 将包含 json 数据的 pandas 数据框的列拆分为多个列

uml - 如何建立伙伴关系模型?

debugging - 如何从 Web 应用程序连接本地托管的 Azure BOT

angular7 - 无法加载 server.component.html

html - 如何判断 Chrome 表单不包含信用卡字段?