@peccul is peccu

(love peccu '(emacs lisp cat outdoor bicycle mac linux coffee))

EC2上のWindowsでUserDataを手動で直接たたくPowerShellワンライナー

tl;dr

Invoke-Expression -Command (Invoke-RestMethod 'http://169.254.169.254/latest/user-data').powershell.ToString()

想定するUserDataの中身

<powershell>
...ここにPowerShellのコードを書く
</powershell>

背景など

調べると、EC2Launchで次回起動時にUserDataを実行してくれる手順として

C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1 –Schedule

みたいなものが出てくる

docs.aws.amazon.com

でもこれは中身を読むとわかるがSysprepしてくれてAdministratorのパスワードも変わるしそこまでしなくてよかった。

メタデータを取得できるので、Linux系でよくある curl ... | bashみたいなことをすればいいと思いつきこうなった。