Windows Sysprep を使用して Amazon EC2 AMI を作成する
Microsoft システム準備 (Windows Sysprep) ツールは、新しいイメージをキャプチャする前にインスタンス固有のシステム設定を削除して、オペレーティングシステムの一般化バージョンを作成します。
EC2 Image Builder を使用して、ソフトウェアと設定が事前にインストール、定義、カスタマイズされたセキュアな最新の「ゴールデン」サーバーイメージの作成、管理、デプロイを自動化することをお勧めします。
Windows 起動エージェントを使用して、Windows Sysprep で標準化 AMI を作成することもできます。詳細については、「起動エージェントで Windows Sysprep を使用する」を参照してください。
重要
Windows Sysprep を使用してインスタンスのバックアップを作成しないでください。Windows Sysprep はシステム固有の情報を削除します。この情報を削除すると、インスタンスのバックアップに予期しない結果が生じる場合があります。
Windows Sysprep のトラブルシューティングについては、「Amazon EC2 Windows インスタンスの Sysprep の問題をトラブルシューティングする」を参照してください。
Windows Sysprep のステップ
Windows Sysprep は、次のステップを通じて実行されます。
-
一般化: Sysprep ツールはイメージに固有の情報と設定を削除します。Windows Sysprep は、例えばセキュリティ識別子 (SID)、コンピュータ名、イベントログおよび特定のドライバーなどを削除します。このステップを完了すると、オペレーティングシステム (OS) は AMI を作成する準備が整いました。
注記
Windows 起動エージェントで Windows Sysprep を実行すると、
PersistAllDeviceInstalls
はデフォルトで true に設定されているため、システムによってドライバーの削除が禁止されます。 -
特定化: プラグアンドプレイはコンピュータをスキャンして、検出されたデバイス用のドライバをインストールします。Sysprep ツールは、コンピュータ名や SID など OS に固有の要件を生成します。必要に応じて、このフェーズでコマンドを実行できます。
-
アウトオブボックスエクスペリエンス (OOBE): システムによって Windows セットアップの省略バージョンが実行され、システム言語、タイムゾーン、登録組織などの情報を入力するように求められます。Windows 起動エージェントで Windows Sysprep を実行すると、応答ファイルによってこのステップが自動化されます。
開始する前に
-
Windows Sysprep を実行する前に、Windows Sysprep を実行する単一の管理者アカウント以外のすべてのローカルユーザーアカウントとすべてのアカウントプロファイルを削除することをお勧めします。追加のアカウントとプロファイルを使用して Windows Sysprep を実行すると、プロファイルデータの損失や Windows Sysprep の完了の失敗など、予期しない動作が発生する可能性があります。
-
詳細については、「Sysprep Overview
」を参照してください。 -
Sysprep でサポートされているサーバーロールについては、「Sysprep Support for Server Roles
」を参照してください。
起動エージェントで Windows Sysprep を使用する
Windows 起動エージェントの 1 つがインストールされている AMI を使用して開始する場合に、Windows Sysprep を使用して標準化 Amazon マシンイメージ (AMI) を作成できます。
このセクションでは、イメージの準備時に EC2Launch v2 サービスによって実行されるタスクの詳細について説明します。また、EC2Launch v2 サービスで Windows Sysprep を使用して標準化 AMI を作成する手順も示します。
EC2Launch v2 での Windows Sysprep の使用に関するトピック
Windows Sysprep のアクション
イメージを準備するために、Windows Sysprep と EC2Launch v2 は以下のアクションを実行します。
-
[EC2Launch settings (EC2Launch の設定)] ダイアログボックスで [Shutdown with Sysprep (Sysprep によるシャットダウン)] を選択すると、システムは
ec2launch sysprep
コマンドを実行します。 -
EC2Launch v2 は、
unattend.xml
のレジストリ値を読み取ることで、HKEY_USERS\.DEFAULT\Control Panel\International\LocaleName
ファイルの内容を編集します。このファイルはC:\ProgramData\Amazon\EC2Launch\sysprep
ディレクトリにあります。 -
システムは
BeforeSysprep.cmd
を実行します。このコマンドは、次のレジストリキーを作成します。reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
レジストリキーは再度有効になるまで RDP 接続を無効にします。RDP 接続を無効にすることは、安全上の観点より必要となります。これは、Windows Sysprep 実行後の最初のブートセッション中、RDP が接続できるわずかな時間の間に管理者パスワードが空白となるためです。
-
EC2Launch v2 サービスは、以下のコマンドを実行して Windows Sysprep を呼び出します。
sysprep.exe /oobe /generalize /shutdown /unattend: "C:\ProgramData\Amazon\EC2Launch\sysprep\unattend.xml"
ステップの一般化
-
EC2Launch v2 は、コンピュータ名や SID などイメージに固有の情報と設定を削除します。インスタンスがドメインのメンバーである場合は、そのドメインから削除されます。
unattend.xml
応答ファイルには、このステップに影響する以下の設定が含まれています。-
PersistAllDeviceInstalls: この設定は、Windows セットアップがデバイスを削除したり再設定することを防ぐことによってイメージ準備プロセスを高速化します。これは、Amazon AMI を実行するためには特定のドライバーが必要となり、これらのドライバーの再検出には時間がかかるためです。
-
DoNotCleanUpNonPresentDevices: この設定では、現在存在しないデバイス用のプラグアンドプレイ情報を保持します。
-
-
Windows Sysprep は AMI の作成の準備完了後に OS をシャットダウンします。システムは、新しいインスタンスを起動するか、または元のインスタンスを起動します。
ステップの特定化
システムは、コンピュータ名や SID など OS に固有の要件を生成します。またシステムは、unattend.xml
応答ファイルで指定した設定に基づいて、以下のアクションを実行します。
-
CopyProfile: Windows Sysprep は、組み込まれた管理者のプロファイルを含むすべてのユーザープロファイルを削除するように設定できます。この設定は、組み込まれた管理者アカウントを保持するため、アカウントで作成したすべてのカスタム設定は新しいイメージに引き継がれます。デフォルト値は
True
です。CopyProfile は、デフォルトのプロファイルを既存のローカル管理者プロファイルに置き換えます。Windows Sysprep の実行後にログインしたすべてのアカウントは、最初のログイン時にそのプロファイルとその内容のコピーを受け取ります。
新しいイメージに引き継ぐ特定のユーザープロファイルがない場合、この設定を
False
に変更します。Windows Sysprep はすべてのユーザープロファイルを削除します (これにより時間とディスク領域が節約されます)。 -
タイムゾーン: タイムゾーンはデフォルトで世界時 (UTC) に設定されます。
-
順序 1 の同期コマンド: システムは次のコマンドを実行して、管理者アカウントを有効化し、パスワード条件を指定します。
net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
-
順序 2 の同期コマンド: システムは、管理者パスワードを組み換えます。このセキュリティ対策の目的は、
setAdminAccount
のタスクを設定していない場合、Windows Sysprep の完了後にインスタンスへのアクセスを防ぐことです。システムは、ローカルの起動エージェントディレクトリ (
C:\Program Files\Amazon\EC2Launch\
) から次のコマンドを実行します。EC2Launch.exe internal randomize-password --username Administrator
-
リモートデスクトップ接続を有効にするため、システムはターミナルサーバーの
fDenyTSConnections
レジストリキーを false に設定します。
OOBE のステップ
-
システムは EC2Launch v2 応答ファイルを使用して以下の設定を指定します。
-
<InputLocale>en-US</InputLocale>
-
<SystemLocale>en-US</SystemLocale>
-
<UILanguage>en-US</UILanguage>
-
<UserLocale>en-US</UserLocale>
-
<HideEULAPage>true</HideEULAPage>
-
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
-
<ProtectYourPC>3</ProtectYourPC>
-
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
-
<TimeZone>UTC</TimeZone>
-
<RegisteredOrganization>Amazon.com</RegisteredOrganization>
-
<RegisteredOwner>EC2</RegisteredOwner>
注記
一般化ステップと特殊化ステップの実行中、EC2Launch v2 によって OS のステータスがモニタリングされます。OS が Sysprep のステップにあることが EC2Launch v2 によって検出された場合、以下のメッセージがシステムログに発行されます。
Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE
-
-
システムは EC2Launch v2 を実行します。
Sysprep 後
Windows Sysprep が完了すると、EC2Launch v2 によって以下のメッセージがコンソール出力に送信されます。
Windows sysprep configuration complete.
次に、EC2Launch v2 は以下のアクションを実行します。
-
agent-config.yml
ファイルの内容を読み取り、設定されたタスクを実行します。 -
preReady
ステージのすべてのタスクを実行します。 -
完了したら、
Windows is ready
メッセージをインスタンスのシステムログに送信します。 -
PostReady
ステージのすべてのタスクを実行します。
EC2Launch v2 の詳細については、「EC2 Windows インスタンスの起動時に EC2Launch v2 エージェントを使用してタスクを実行する」を参照してください。
EC2Launch v2 で Windows Sysprep を実行する
以下の手順に従って、EC2Launch v2 で Windows Sysprep を使用して標準化 AMI を作成します。
-
Amazon EC2 コンソールで、複製する AMI の場所を特定します。
-
Windows インスタンスを起動して接続します。
-
カスタマイズする。
-
Windows の [スタート] メニューから、[Amazon EC2Launch settings (Amazon EC2Launch 設定)] を検索して選択します。[Amazon EC2Launch settings (Amazon EC2Launch 設定)] ダイアログボックスのオプションと設定の詳細については、「EC2Launch v2 設定を Windows インスタンスに構成する」を参照してください。
-
[Shutdown with Sysprep (Sysprep を使用したシャットダウン)] または [Shutdown without Sysprep (Sysprep を使用しないシャットダウン)] を選択します。
Windows Sysprep を実行しインスタンスをシャットダウンするかどうか確認を求められたら [はい] をクリックします。EC2Launch v2 は Windows Sysprep を実行します。次に、インスタンスからログオフされ、インスタンスがシャットダウンされます。Amazon EC2 コンソールの [Instances (インスタンス)] ページでは、インスタンスの状態が Running
から Stopping
に変わった後、Stopped
に変わります。この状態になれば、インスタンスから AMI を安全に作成できます。
コマンドラインから Windows Sysprep ツールを手動で呼び出すには、次のコマンドを使います。
"%programfiles%\amazon\ec2launch\ec2launch.exe" sysprep --shutdown=true
EC2Launch は、AMI でイメージ準備プロセスを自動化および保護する Windows Sysprep 用のデフォルトの応答ファイルとバッチファイルを提供します。これらのファイルの変更はオプションです。デフォルトでは、これらのファイルは C:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep
ディレクトリにあります。
重要
Windows Sysprep を使用してインスタンスのバックアップを作成しないでください。Windows Sysprep はシステム固有の情報を削除します。この情報を削除すると、インスタンスバックアップで意図しない結果が生じる可能性があります。
EC2Launch での Windows Sysprep の使用に関するトピック
Windows Sysprep の EC2Launch 応答ファイルとバッチファイル
Windows Sysprep の EC2Launch 応答ファイルとバッチファイルには以下のものが含まれます。
Unattend.xml
-
これがデフォルトの応答ファイルです。
SysprepInstance.ps1
を実行するか、ユーザーインターフェイスで ShutdownWithSysprep を選択すると、このファイルから設定が読み取られます。 BeforeSysprep.cmd
-
このバッチファイルをカスタマイズし、EC2Launch が Windows Sysprep を実行する前にコマンドを実行します。
SysprepSpecialize.cmd
-
このバッチファイルをカスタマイズして、Windows Sysprep の特定化ステップ中にコマンドを実行します。
EC2Launch で Windows Sysprep を実行する
Windows Server 2016 以降の完全インストール (デスクトップ体験を含む) では、EC2Launch を使用して手動で、または [EC2 起動設定] アプリケーションを使用して、Windows Sysprep を実行できます。
[EC2 起動設定] アプリケーションを使用して Windows Sysprep を実行するには
-
Amazon EC2 コンソールで、Windows Server 2016 以降の AMI を見つけるか作成します。
-
AMI から Windows インスタンスを起動します。
-
Windows インスタンスに接続し、カスタマイズします。
-
[EC2LaunchSettings] アプリケーションを検索して実行します。このアプリケーションは、デフォルトでは
C:\ProgramData\Amazon\EC2-Windows\Launch\Settings
ディレクトリにあります。 -
必要に応じて、オプションを選択または選択解除します。これらの設定は
LaunchConfig.json
ファイルに保存されます。 -
[Administrator Password] で、以下のいずれかを行います。
-
[Random] を選択します。EC2Launch は、ユーザーのキーを使用してパスワードを生成し、暗号化します。この設定はインスタンス起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。
-
[Specify] を選択し、システム要件を満たすパスワードを入力します。このパスワードはクリアテキストとして
LaunchConfig.json
に保存され、Windows Sysprep で管理者パスワードが設定されると削除されます。ここでシャットダウンした場合、パスワードはすぐに設定されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。 -
[DoNothing] を選択して、
unattend.xml
ファイルでパスワードを指定します。unattend.xml
でパスワードを指定しない場合、管理者アカウントは無効になります。
-
-
[Shutdown with Sysprep (Sysprep を使用してシャットダウン)] を選択します。
EC2Launch を使用して手動で Windows Sysprep を実行するには
-
Amazon EC2 コンソールで、複製する Windows Server 2016 以降の Datacenter エディション AMI を見つけるか作成します。
-
Windows インスタンスを起動して接続します。
-
インスタンスをカスタマイズします。
-
LaunchConfig.json
ファイルで設定を指定します。デフォルトでは、このファイルはC:\ProgramData\Amazon\EC2-Windows\Launch\Config
ディレクトリにあります。adminPasswordType
で、次のいずれかの値を指定します。Random
-
EC2Launch は、ユーザーのキーを使用してパスワードを生成し、暗号化します。この設定はインスタンス起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。
Specify
-
EC2Launch は、
adminPassword
で指定したパスワードを使用します。指定したパスワードがシステム要件を満たさない場合は、代わりに EC2Launch によってランダムなパスワードが生成されます。このパスワードはクリアテキストとしてLaunchConfig.json
に保存され、Windows Sysprep で管理者パスワードが設定されると削除されます。EC2Launch は、ユーザーのキーを使用してパスワードを暗号化します。 DoNothing
-
EC2Launch は、
unattend.xml
ファイルで指定したパスワードを使用します。unattend.xml
でパスワードを指定しない場合、管理者アカウントは無効になります。
-
(オプション) 必要に応じて、
unattend.xml
およびその他の設定ファイルで設定を指定します。手動のインストールを計画している場合は、これらのファイルに変更を加える必要はありません。デフォルトでは、このファイルはC:\ProgramData\Amazon\EC2-Windows\Launch\Sysprep
ディレクトリにあります。 -
Windows PowerShell で、
./InitializeInstance.ps1 -Schedule
を実行します。デフォルトでは、このスクリプトはC:\ProgramData\Amazon\EC2-Windows\Launch\Scripts
ディレクトリにあります。このスクリプトは、次の起動中に初期化するようインスタンスをスケジュールします。次のステップでSysprepInstance.ps1
スクリプトを実行する前に、このスクリプトを実行する必要があります。 -
Windows PowerShell で、
./SysprepInstance.ps1
を実行します。デフォルトでは、このスクリプトはC:\ProgramData\Amazon\EC2-Windows\Launch\Scripts
ディレクトリにあります。
ユーザーは自動的にログオフさせられ、インスタンスがシャットダウンします。Amazon EC2 コンソールの [Instances (インスタンス)] ページを見ると、インスタンスの状態が Running
から Stopping
に、そして Stopped
へ変わるのがわかります。この状態になれば、インスタンスから AMI を安全に作成できます。
カスタム AMI の起動時に Server 2016 以降のメタデータ/KMS ルートを更新する
カスタム AMI の起動時に Server 2016 以降のメタデータ/KMS ルートを更新するには、以下のいずれかの操作を行います。
-
EC2LaunchSettings GUI (C:\ProgramData\Amazon\EC2-Windows\Launch\Settings\Ec2LaunchSettings.exe) を実行し、Windows Sysprep を使用してシャットダウンするオプションを選択します。
-
AMI を作成する前に、EC2LaunchSettings を実行し、Windows Sysprep を使用しないでシャットダウンします。これにより、次回の起動時に実行される EC2 Launch の初期化タスクが設定され、インスタンスのサブネットに基づいてルートが設定されます。
-
PowerShell から AMI を作成する前に、EC2 Launch の初期化タスクを手動で再スケジュールします。
重要
タスクを再スケジューリングする前に、デフォルトではパスワードリセット動作となることに注意してください。
-
Windows のライセンス認証またはインスタンスメタデータの通信に関するエラーが発生している実行中のインスタンスのルートを更新するには、「Windows のライセンス認証を行うことができません」を参照してください。
このセクションでは、イメージの準備時に EC2Config サービスによって実行されるタスクの詳細について説明します。また、EC2Config サービスで Windows Sysprep を使用して標準化 AMI を作成する手順も示します。
EC2Config での Windows Sysprep の使用に関するトピック
Windows Sysprep のアクション
イメージを準備するために、Windows Sysprep と EC2Config サービスは次のアクションを実行します。
-
[EC2 サービスのプロパティ] ダイアログボックスで [Sysprep を使用してシャットダウンする] を選択すると、システムは ec2config.exe -sysprep コマンドを実行します。
-
EC2Config サービスは
BundleConfig.xml
ファイルの内容を読み込みます。デフォルトでは、このファイルはC:\Program Files\Amazon\Ec2ConfigService\Settings
ディレクトリにあります。BundleConfig.xml
ファイルには、以下の設定が含まれています。これらの設定は変更できます:-
AutoSysprep: Windows Sysprep を自動で使用するかどうかを示します。[EC2 サービスプロパティ] ダイアログボックスで Windows Sysprep を実行した場合、この値を変更する必要はありません。デフォルト値は
No
です。 -
SetRDPCertificate: リモートデスクトップサーバーに自己署名証明書を設定します。これによって、リモートデスクトッププロトコール (RDP) を安全に使用して、インスタンスに接続できます。新しいインスタンスに証明書が必要な場合は、値を
Yes
に変更します。この設定は、Windows Server 2012 のインスタンスでは使用されません。これらのオペレーティングシステムが独自の証明書を生成できるためです。デフォルト値はNo
です。 -
SetPasswordAfterSysprep: 新しく起動したインスタンスにランダムなパスワードを設定し、ユーザー起動キーで暗号化して、暗号化されたパスワードをコンソールに出力します。新しいインスタンスにランダムに暗号化されたパスワードを設定しない場合は、値
No
に変更します。デフォルト値はYes
です。 -
PreSysprepRunCmd: 実行するコマンドの場所。コマンドは、デフォルトでは
C:\Program Files\Amazon\Ec2ConfigService\Scripts\BeforeSysprep.cmd
ディレクトリにあります。
-
-
システムは
BeforeSysprep.cmd
を実行します。このコマンドは、次のレジストリキーを作成します。reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 1 /f
レジストリキーは再度有効になるまで RDP 接続を無効にします。RDP 接続を無効にすることは、安全上の観点より必要となります。これは、Windows Sysprep 実行後の最初のブートセッション中、RDP が接続できるわずかな時間の間に管理者パスワードが空白となるためです。
-
EC2Config サービスは、以下のコマンドを実行して Windows Sysprep を呼び出します。
sysprep.exe /unattend: "C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml" /oobe /generalize /shutdown
ステップの一般化
-
このツールは、コンピュータ名や SID のようなイメージに固有の情報と設定を削除します。インスタンスがドメインのメンバーである場合は、そのドメインから削除されます。
sysprep2008.xml
応答ファイルには、このステップに影響する以下の設定が含まれています。-
PersistAllDeviceInstalls: この設定は、Windows セットアップがデバイスを削除したり再設定することを防ぐことによってイメージ準備プロセスを高速化します。これは、Amazon AMI を実行するためには特定のドライバーが必要となり、これらのドライバーの再検出には時間がかかるためです。
-
DoNotCleanUpNonPresentDevices: この設定では、現在存在しないデバイス用のプラグアンドプレイ情報を保持します。
-
-
Windows Sysprep は AMI の作成の準備完了後に OS をシャットダウンします。システムは、新しいインスタンスを起動するか、または元のインスタンスを起動します。
ステップの特定化
システムは、コンピュータ名や SID など OS に固有の要件を生成します。またシステムは、sysprep2008.xml 応答ファイルで指定した設定に基づいて、次のアクションを実行します。
-
CopyProfile: Windows Sysprep は、組み込まれた管理者のプロファイルを含むすべてのユーザープロファイルを削除するように設定できます。この設定は、組み込まれた管理者アカウントを保持するため、アカウント作成したすべてのカスタム設定は新しいイメージに引き継がれます。デフォルト値は True です。
CopyProfile は、デフォルトのプロファイルを既存のローカル管理者プロファイルに置き換えます。Windows Sysprep の実行後にログインしたすべてのアカウントは、最初のログイン時にそのプロファイルとその内容のコピーを受け取ります。
新しいイメージに引き継ぐことを希望する特定のユーザープロファイルがない場合、この設定を「いいえ」に変更します。Windows Sysprep はすべてのユーザーを削除します。これによって時間とディスク領域が節約されます。
-
タイムゾーン: タイムゾーンはデフォルトで世界時 (UTC) に設定されます。
-
順序 1 の同期コマンド: システムは次のコマンドを実行して、管理者アカウントを有効化し、パスワード条件を指定します。
net user Administrator /ACTIVE:YES /LOGONPASSWORDCHG:NO /EXPIRES:NEVER /PASSWORDREQ:YES
-
順序 2 の同期コマンド: システムは、管理者パスワードを組み換えます。このセキュリティ対策の目的は、ec2setpassword 設定を有効にしていない場合、Windows Sysprep の完了後にインスタンスへのアクセスを防ぐことです。
C:\Program Files\Amazon\Ec2ConfigService\ScramblePassword.exe" -u Administrator
-
順序 3 の同期コマンド: システムは次のコマンドを実行します。
C: \Program Files\Amazon\Ec2ConfigService\Scripts\SysprepSpecializePhase.cmd
このコマンドは、RDP を再度有効にする次のレジストリキーを追加します。
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections /t REG_DWORD /d 0 /f
OOBE のステップ
-
EC2Config サービス応答ファイルを使用すると、システムは次の設定を指定します。
-
<InputLocale>en-US</InputLocale>
-
<SystemLocale>en-US</SystemLocale>
-
<UILanguage>en-US</UILanguage>
-
<UserLocale>en-US</UserLocale>
-
<HideEULAPage>true</HideEULAPage>
-
<HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
-
<NetworkLocation>その他</NetworkLocation>
-
<ProtectYourPC>3</ProtectYourPC>
-
<BluetoothTaskbarIconEnabled>false</BluetoothTaskbarIconEnabled>
-
<TimeZone>UTC</TimeZone>
-
<RegisteredOrganization>Amazon.com</RegisteredOrganization>
-
<RegisteredOwner>Amazon</RegisteredOwner>
注記
一般化と特定化ステップにおいて、EC2Config サービスは OS のステータスをモニタリングします。OS が Sysprep のステップにあることが EC2Config によって検出された場合、以下のメッセージがシステムログに発行されます。
EC2ConfigMonitorState: 0 Windows is being configured. SysprepState=IMAGE_STATE_UNDEPLOYABLE
-
-
OOBE フェーズが完了すると、システムは
SetupComplete.cmd
からC:\Windows\Setup\Scripts\SetupComplete.cmd
を実行します。2015 年 4 月以前の Amazon パブリック AMI では、このファイルは空となり、イメージには何も実行されません。2015 年 4 月以降のパブリック AMI では、ファイルに call "C:\Program Files\Amazon\Ec2ConfigService\Scripts\PostSysprep.cmd" の値が含まれます。 -
システムが
PostSysprep.cmd
を実行し、次の操作を行います。-
ローカル管理者パスワード期限切れにならないよう設定します。パスワードの期限が切れた場合、管理者がログインできないことがあります。
-
MSSQLServer マシン名を設定すると (インストールされている場合)、名前は AMI で同期されます。
-
Sysprep 後
Windows Sysprep が完了したら、EC2Config サービスは次のメッセージをコンソール出力へ送信します。
Windows sysprep configuration complete. Message: Sysprep Start Message: Sysprep End
そして、EC2Config は次のアクションを実行します。
-
config.xml ファイルのコンテンツを読み取り、すべての有効なプラグインを示します。
-
「Windows の準備が終了する前」のすべてのプラグインを同時に実行します。
-
Ec2SetPassword
-
Ec2SetComputerName
-
Ec2InitializeDrives
-
Ec2EventLog
-
Ec2ConfigureRDP
-
Ec2OutputRDPCert
-
Ec2SetDriveLetter
-
Ec2WindowsActivate
-
Ec2DynamicBootVolumeSize
-
-
これが完了すると、「Windows の準備完了」のメッセージをインスタンスのシステム ログに送信します。
-
「Windows の準備が終了した後」のすべてのプラグインを同時に実行します
-
Amazon CloudWatch Logs
-
UserData
-
AWS Systems Manager (Systems Manager)
-
Windows プラグインの詳細については、「EC2Config サービスを使用して、EC2 レガシー Windows オペレーティングシステムインスタンスの起動時にタスクを実行する」を参照してください。
EC2Config サービスで Windows Sysprep を実行する
以下の手順に従って、Windows Sysprep と EC2Config サービスを使用して標準化 AMI を作成します。
-
Amazon EC2 コンソールで複製を希望する AMI を見つけるか、作成します。
-
Windows インスタンスを起動して接続します。
-
カスタマイズする。
-
EC2Config サービス応答ファイルで特定設定を指定します。
C:\Program Files\Amazon\Ec2ConfigService\sysprep2008.xml
-
Windows の [スタート] メニューから [すべてのプログラム] を選び、次に [EC2ConfigService 設定] を選択します。
-
[Ec2 サービスプロパティ] ダイアログボックスで [イメージ] タブを選択します。Ec2 サービスプロパティダイアログボックスのオプションと設定についての詳細は、「Ec2 サービスプロパティ」を参照してください。
-
管理者パスワードのオプションを選択してから、[Shutdown with Sysprep] または [Shutdown without Sysprep] を選択します。EC2Config は、選択したパスワードオプションに基づいて設定ファイルを編集します。
-
ランダム: EC2Config はパスワードを生成してユーザーのキーで暗号化し、暗号化されたパスワードをコンソールに表示します。この設定は初回起動後に無効になるため、インスタンスを再起動したり、停止して起動した場合でもパスワードは保持されます。
-
指定: パスワードは、Windows Sysprep 応答ファイルに暗号化されていない形式 (平文) で保存されます。Windows Sysprep が次に実行されると、管理者パスワードに設定されます。ここでシャットダウンした場合、パスワードはすぐに設定されます。サービスを再開すると、管理者パスワードは削除されます。このパスワードは後で取得できないため覚えておくことが重要です。
-
既存のパスワードを保持: Windows Sysprep の実行時や EC2Config の再起動時に、管理者アカウントの既存のパスワードは変更されません。このパスワードは後で取得できないため覚えておくことが重要です。
-
-
[OK] を選択します。
Windows Sysprep を実行しインスタンスをシャットダウンするかどうか確認を求められたら [はい] をクリックします。これにより、EC2Config が Windows Sysprep を実行します。次に、ユーザーは自動的にログオフさせられ、インスタンスがシャットダウンします。Amazon EC2 コンソールの [インスタンス] ページを見ると、インスタンスの状態が Running
から Stopping
、最終的に Stopped
に変わるのがわかります。この状態になれば、インスタンスから AMI を安全に作成できます。
コマンドラインから Windows Sysprep ツールを手動で呼び出すには、次のコマンドを使います。
"%programfiles%\amazon\ec2configservice\"ec2config.exe -sysprep""
注記
CMD シェルが C:\Program Files\Amazon\EC2ConfigService\ ディレクトリ内に既に存在する場合、コマンドの二重引用符は不要です。
ただし、この操作は慎重に行ってください。Ec2ConfigService\Settings
フォルダで指定した XML ファイルオプションが正しくないと、インスタンスに接続できなくなる場合があります。設定ファイルの詳細については、「EC2Config の設定ファイル」を参照してください。コマンドラインから Windows Sysprep を設定して実行する例については、「Ec2ConfigService\Scripts\InstallUpdates.ps1
」を参照してください。