gpt4 book ai didi

amazon-web-services - 为通过 UserData 创建 AMI 准备 Windows 2016 EC2 实例

转载 作者:行者123 更新时间:2023-12-05 07:25:16 25 4
gpt4 key购买 nike

我正在按照本指南为 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.ps1PS 也使用 unix 风格的目录斜杠。cd "C:/ProgramData/Amazon/EC2-Windows/Launch/Scripts/"

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com