如何使Windows EC2用户数据脚本在启动时再次运行?

时间:2019-07-11 23:39:07

标签: amazon-web-services amazon-ec2

第一次启动EC2时,将运行用户数据脚本。

如何在Windows EC2上恢复/重新激活此功能?

注意

我已经尝试过建议使用脚本here的脚本,但是由于没有文件C:\Program Files\Amazon\Ec2ConfigService\Settings\Config.xml并且没有类似的名称(我找不到,甚至没有Ec2ConfigService目录),脚本也立即失败了

还请注意,我的问题与this问题相同,但对于Windows ec2,不是Linux

1 个答案:

答案 0 :(得分:0)

我了解关键在于仅运行用户数据,而不是其他所有内容...

要运行(仅)用户数据脚本,可以通过以下方式运行它:

Import-Module (Join-Path (Join-Path $env:ProgramData -ChildPath "Amazon\EC2-Windows\Launch") -ChildPath "Module\Ec2Launch.psd1")
Invoke-Userdata -OnlyExecute

假设您将其保存为“ C:\ ProgramData \ Amazon \ EC2-Windows \ Launch \ Config \ run-user-data.ps1”,然后可以使用PowerShell安排新任务在启动时运行: / p>

$Action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-ExecutionPolicy Bypass C:\ProgramData\Amazon\EC2-Windows\Launch\Config\run-user-data.ps1'
$Trigger = New-ScheduledTaskTrigger -AtStartup
$Settings = New-ScheduledTaskSettingsSet
$Task = New-ScheduledTask -Action $Action -Trigger $Trigger -Settings $Settings
Register-ScheduledTask -TaskName 'Execute user-data' -InputObject $Task -User 'NT AUTHORITY\SYSTEM' -Force

我通过在“ AWS :: CloudFormation :: Init”部分上创建提及的文件和命令来使用这种解决方案。

希望有帮助!