このトピックでは、Elastic Compute Service (ECS) インスタンスが相互にActive Directory (AD) ドメインにアクセスできない、またはインスタンスを同時に同じADドメインに追加できないという問題を解決する方法について説明します。
問題の説明
同じWindows Serverイメージを使用して複数のECSインスタンスを作成すると、インスタンスは相互にADドメインにアクセスできないか、同じADドメインに同時に追加できません。
原因
同じWindows Serverイメージを使用するインスタンスのセキュリティ識別子 (SID) は同じです。 したがって、インスタンスは相互のADドメインにアクセスできません。 インスタンスのSIDを変更してから、ドメイン環境を構築する必要があります。
解決策
一度に異なるSIDを持つ複数のWindowsインスタンスを作成する
この問題は最新のパブリックイメージで修正されています。 最新のパブリックイメージを使用して、一度にインスタンスを作成します。 インスタンスには異なるSIDがあります。
WindowsインスタンスのSIDの変更
Windowsの組み込みsysprep
コマンドを実行すると、Windowsインスタンスで使用されるイメージ (SIDを含む) から特定のシステム情報を削除できます。 この例では、PowerShell
のAutoSysprep.ps1
スクリプトファイルを使用して、組み込みのsysprep
コマンドを実行してWindowsインスタンスのSIDを変更します。 sysprep
コマンドを使用すると、ユーザープロファイルが既定値に復元されます。 sysprep
コマンドを実行すると、デスクトップに作成されたファイルが削除されます。 問題の解決後にスクリプトを自動的に削除する場合は、AutoSysprep.ps1スクリプトファイルをデスクトップに配置して、スクリプトを実行します。
手順
インスタンスのシステムディスクのスナップショットを作成して、データの損失を防ぎます。
詳細については、「ディスクのスナップショットの作成」をご参照ください。
インスタンスに接続します。
詳細については、「パスワードまたはキーを使用したWindowsインスタンスへの接続」をご参照ください。
コマンドプロンプトを起動し、
powershell
コマンドを実行してPowerShell対話モードに入ります。説明管理者として
powershell
コマンドを実行する必要があります。次のコマンドを実行して、Cドライブのルートディレクトリに切り替えます。
cd\
次のコマンドを実行して、インスタンスのSIDを表示します。
whoami /user
次のようなコマンド出力が表示されます。
AutoSysprepをクリックしてAutoSysprepスクリプトツールをダウンロードし、WindowsオペレーティングシステムのCドライブにツールをアップロードします。
AutoSysprep.ps1
スクリプトツールがあるディレクトリに移動し、次のコマンドを実行してスクリプトツールの説明を表示します。.\AutoSysprep.ps1 -help
次のようなコマンド出力が表示されます。 パラメーターの詳細については、「詳細」をご参照ください。
次のコマンドを実行して、スクリプトを実行します。
.\AutoSysprep.ps1 -SkipRearm -Password "<$Password>" -PostAction "reboot"
説明<$Password>
は、インスタンスのパスワードを指定します。しばらく待ってから、もう一度インスタンスにログインします。
説明インスタンスがクラシックネットワークにある場合は、仮想ネットワークコンピューティング (VNC) 管理端末を使用してインスタンスに接続する必要があります。 詳細については、「パスワードを使用したWindowsインスタンスへの接続」をご参照ください。
次のコマンドを実行して、インスタンスのSIDが変更されたことを確認します。 その後、インスタンスを使用してADドメイン環境を構築できます。
whoami /user
より多くの情報
パラメーターの説明
次のセクションでは、AutoSysprep.ps1
スクリプトツールのパラメーターについて説明します。
-SkipRearm: Windowオペレーティングシステムを現在のライセンス状態に保持します。 このパラメーターを指定しない場合、AutoSysprepはWindowsオペレーティングシステムを元のライセンス状態に復元します。
-Password: インスタンスのパスワードをリセットします。 パスワードは以下の要件を満たす必要があります。
パスワードの長さは8 ~ 30文字で、先頭をスラッシュ (/) にすることはできません。
パスワードには、大文字、小文字、数字、特殊文字の中から少なくとも 3 種類の文字を使用する必要があります。 特殊文字:
( ) ` ~ ! @ # $ % ^ & - _ + = | { } [ ] : ; ’ < > , . ? /
-Password
パラメーターの値は、AutoSysprepによってランダムに生成されます。
説明パスワードの設定を忘れた場合は、インスタンスSIDの変更後にECSコンソールでパスワードをリセットできます。
-Hostname: インスタンスのホスト名をリセットします。 ホスト名は次の要件を満たす必要があります。
ホスト名の長さは2 ~ 15文字で、ピリオド (.) を含めることはできません。また、数字のみで構成することはできません。
文字、数字、ハイフン(-)を含めることができます。
ホスト名の先頭または末尾をピリオド (.) またはハイフン (-) にすることはできません。 ピリオド (.) やハイフン (-) を連続して使用することはできません。
-Hostname
パラメーターの値は、AutoSysprepによってランダムに生成されます。
-PostAction: スクリプトの実行後に実行する操作を指定します。 オプション:
shutdown: デフォルトのオプション。 インスタンスのSIDが変更されると、インスタンスは停止します。
reboot: インスタンスのSIDが変更された後、インスタンスが再起動されます。
quit: SIDが変更された後も、インスタンスの元のSIDはインスタンスに残ります。
-help: スクリプトツールの紹介とAutoSysprep.ps1スクリプトのパラメーターの説明を表示します。
Windows Server 2008でスクリプトの説明を表示するとエラーが発生しました
問題の説明
次のコマンドを実行して、スクリプトの説明を表示します。
.\AutoSysprep.ps1 -help
次のようなコマンド出力が表示されます。
解決策
次のコマンドを実行して、WindowsオペレーティングシステムでPowerShellの実行ポリシーを変更します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
スクリプトをWindows Server 2008で実行すると、デジタル署名は生成されません
問題の説明
次のコマンドを実行して、スクリプトを実行します。
.\AutoSysprep.ps1 -skiprearm -postaction "reboot"
次のようなコマンド出力が表示されます。
解決策
次のコマンドを実行して、スクリプトを実行します。
powershell -executionpolicy bypass -file c:\AutoSysprep.ps1 -skiprearm -postaction "reboot"
特別な要件がない場合、AutoSysprepはランダムにパスワードとホスト名を生成します。