AWS Systems Manager ドキュメント AWSEC2-RunSysprep を試してみた
はじめに
テクニカルサポートの 片方 です。
Amazon が提供する、AWSEC2-RunSysprep ドキュメントをご存じですか。私は知りませんでした。
今回は、こちらの ドキュメント を利用して Windows Server 2022 の EC2 インスタンスへ Sysprep を実行したいと思います。
なお、一般的には Image Builder の RunSysPrep ステップにおいて、内部的にこちらの AWSEC2-RunSysprep ドキュメントを実行しているようです。
このステップアクションでは、ビルドインスタンスがスナップショット用にシャットダウンされる前に、Systems Manager API の sendCommand を使用して Windows インスタンス用の AWSEC2-RunSysprep ドキュメントを実行します。
やってみた
マネージドノードとして登録済みの Windows Server 2022 に対して実行しました。設定方法については省略させていただきます。
SSM マネジメントコンソール画面から左ペイン ドキュメントを選択します。
検索窓に 「sysprep」 と記載して "AWSEC2-RunSysprep" が表示されたら選択します。
「コマンドを実行する」 を選択します。
コマンドパラメーターはそのままに、お好みの方法で対象ノードを選択します。
あとは、実行すれば完了です。
非常に簡単ですね。
暫くすると、成功しました。
Output は以下の通りです。
07/30/2025 09:27:52 UTC | Info | Start of Start-AwsUwiSysprep
07/30/2025 09:27:53 UTC | Info | Starting EC2LaunchV2 method of sysprep.
07/30/2025 09:29:24 UTC | Info | Standard Output:
07/30/2025 09:29:24 UTC | Info | agent ran successfully
07/30/2025 09:29:24 UTC | Info | Sysprep sub-command: shutdown: false clean: false
07/30/2025 09:29:24 UTC | Info | 2025-07-30 09:27:58 Info: Preparing items to run Sysprep.
07/30/2025 09:29:24 UTC | Info | 2025-07-30 09:27:58 Console: Message: Successfully disabled hibernation
07/30/2025 09:29:24 UTC | Info | 2025-07-30 09:27:58 Info: Run sysprep
07/30/2025 09:29:24 UTC | Info | 2025-07-30 09:27:58 Info: Sysprep command: C:\Windows\System32\Sysprep\Sysprep.exe /oobe /quit /generalize /unattend:C:\ProgramData\Amazon\EC2Launch\sysprep\unattend.xml
07/30/2025 09:29:24 UTC | Info | Standard Error:
07/30/2025 09:29:24 UTC | Info | Sysprep process completed
07/30/2025 09:29:24 UTC | Info | Successfully executed EC2LaunchV2 method of sysprep.
Output 記載通り、AWSEC2-RunSysprep ドキュメントでは、以下の設定で行われていることを確認できます。
- /generalize → SID のリセット、固有情報の削除
- /oobe → 次回起動時に初期セットアップ(または unattended 処理)
- /unattend:<path> → カスタム設定(ホスト名、ドメイン参加など)を適用
- /quit → Sysprep GUI を表示せずに終了
オプションを付与してやってみた
Id : sysprep-20240701
SysprepTimeout : 600000
Output は以下の通りです。
07/30/2025 10:01:58 UTC | Info | Start of Start-AwsUwiSysprep
07/30/2025 10:01:58 UTC | Info | Starting EC2LaunchV2 method of sysprep.
07/30/2025 10:02:02 UTC | Info | Timeout is '600000' milliseconds
07/30/2025 10:03:45 UTC | Info | Standard Output:
07/30/2025 10:03:45 UTC | Info | agent ran successfully
07/30/2025 10:03:45 UTC | Info | Sysprep sub-command: shutdown: false clean: false
07/30/2025 10:03:45 UTC | Info | 2025-07-30 10:02:03 Info: Preparing items to run Sysprep.
07/30/2025 10:03:45 UTC | Info | 2025-07-30 10:02:03 Console: Message: Successfully disabled hibernation
07/30/2025 10:03:45 UTC | Info | 2025-07-30 10:02:03 Info: Run sysprep
07/30/2025 10:03:45 UTC | Info | 2025-07-30 10:02:03 Info: Sysprep command: C:\Windows\System32\Sysprep\Sysprep.exe /oobe /quit /generalize /unattend:C:\ProgramData\Amazon\EC2Launch\sysprep\unattend.xml
07/30/2025 10:03:45 UTC | Info | Standard Error:
07/30/2025 10:03:45 UTC | Info | Sysprep process completed
07/30/2025 10:03:45 UTC | Info | Successfully executed EC2LaunchV2 method of sysprep.
Id: sysprep-20240701 を指定したことで、ログファイルや作業ディレクトリがどの様になっているか確認しました。
なお、ドキュメントを実行した EC2 インスタンスの ルート EBS ボリュームを別 EC2 インスタンスに D: ドライブとしてアタッチして確認しました。
画像の通り、ログの保存場所が Id に基づいていることが分かります。
(C:)\ProgramData\Amazon\AWSUpdateWindowsInstance\sysprep-20240701\Start-AwsUwiSysprep\
まとめ
本ブログが誰かの参考になれば幸いです。
参考資料
- AWS Systems Manager ドキュメント - AWS Systems Manager
- ワークフロードキュメントでサポートされているステップアクション - EC2 イメージビルダー
- Sysprep のコマンド ライン オプション | Microsoft Learn
アノテーション株式会社について
アノテーション株式会社は、クラスメソッド社のグループ企業として「オペレーション・エクセレンス」を担える企業を目指してチャレンジを続けています。「らしく働く、らしく生きる」のスローガンを掲げ、様々な背景をもつ多様なメンバーが自由度の高い働き方を通してお客様へサービスを提供し続けてきました。現在当社では一緒に会社を盛り上げていただけるメンバーを募集中です。少しでもご興味あれば、アノテーション株式会社WEBサイトをご覧ください。