このトピックでは、複数のインスタンスが同じ Active Directory ドメインにアクセスまたは参加できない場合に発生する問題を解決する方法について説明します。
症状
同じ Windows Server イメージから複数の ECS インスタンスを作成した後、インスタンスが同じ Active Directory (AD) ドメインにアクセスまたは参加できません。
原因
同じ Windows Server イメージから作成された ECS インスタンスは、同じセキュリティ識別子 (SID) を持ちます。これにより、同じ AD ドメインにアクセスできなくなります。ドメイン環境をセットアップする前に、各インスタンスの SID を変更する必要があります。
解決策
一意の SID を持つ Windows インスタンスを作成する
最新のパブリックイメージを使用してインスタンスを作成します。この問題は、最新のパブリックイメージで解決されています。
カスタムイメージの作成
Windows インスタンスの SID を変更するセクションの手順 1 から 7 に従います。
次のコマンドを実行してスクリプトを実行します。
.\AutoSysprep.ps1 -PostAction "shutdown"カスタムイメージを作成します。詳細については、「インスタンスからカスタムイメージを作成する」をご参照ください。その後、このカスタムイメージに基づいてインスタンスを作成できます。
Windows インスタンスの SID を変更する
Windows には、インストール済みの Windows イメージから SID を含む特定のシステム情報を削除する組み込みの sysprep コマンドがあります。このトピックでは、PowerShell スクリプトファイル AutoSysprep.ps1 を使用して sysprep コマンドを実行し、Windows インスタンスの SID を変更します。sysprep コマンドはユーザープロファイルをデフォルト値にリセットすることに注意してください。sysprep コマンドを実行すると、デスクトップ上のすべてのファイルが削除されます。問題解決後にスクリプトを自動的に削除したい場合は、実行前にスクリプトファイルをデスクトップに配置してください。
手順
データ損失を防ぐために、インスタンスのシステムディスクのスナップショットを作成します。
詳細については、「スナップショットの作成」をご参照ください。
ECS インスタンスにリモートで接続します。
詳細については、「Workbench を使用して Windows インスタンスに接続する」をご参照ください。
システムターミナルにログインし、
powershellコマンドを実行して PowerShell 対話モードに入ります。説明powershellコマンドは管理者として実行する必要があります。次のコマンドを実行して、C ドライブのルートディレクトリに切り替えます。
cd\次のコマンドを実行して、システムの SID を表示します。
whoami /userAutoSysprep スクリプトツールをダウンロードし、インスタンスの C ドライブにアップロードします。
AutoSysprep.ps1スクリプトが配置されているディレクトリに移動し、次のコマンドを実行してその命令を表示します。.\AutoSysprep.ps1 -help次のコマンドを実行してスクリプトを実行します。
.\AutoSysprep.ps1 -SkipRearm -Password "<$Password>" -PostAction "reboot" //<$Password> は設定したいパスワードです。しばらく待ってから、インスタンスに再度ログインします。次のコマンドを実行して、システムの SID が変更されたことを確認します。その後、ECS インスタンスを使用して AD ドメイン環境をセットアップできます。
whoami /user
詳細情報
パラメーター
AutoSysprep.ps1 スクリプトのパラメーターは以下のとおりです。
-SkipRearm: Windows オペレーティングシステムの現在のライセンス状態を維持します。このパラメーターを含めない場合、AutoSysprep は Windows インスタンスを元のライセンス状態に復元します。
-Password: インスタンスのパスワードをリセットします。パスワードは次の要件を満たす必要があります:
パスワードは 8~30 文字の長さで、スラッシュ (/) で始めることはできません。
パスワードには、大文字、小文字、数字、特殊文字のうち、少なくとも 3 種類を含める必要があります。使用できる特殊文字は次のとおりです。
( ) ` ~ ! @ # $ % ^ & - _ + = | { } [ ] : ; ’ < > , . ? /-Passwordパラメーターのデフォルト値は AutoSysprep によってランダムに生成されます。
説明パスワードの設定を忘れた場合は、システムの SID を変更した後に ECS コンソールでリセットできます。
-Hostname: インスタンスのホスト名をリセットします。ホスト名には次の制限があります:
ホスト名は 2~15 文字の長さである必要があります。ピリオド (.) を含めたり、全体が数字で構成されたりすることはできません。
ホスト名には、大文字、小文字、数字、ハイフン (-) を使用できます。
ホスト名はピリオド (.) またはハイフン (-) で開始または終了することはできません。連続するピリオドやハイフンは許可されません。
-Hostnameパラメーターのデフォルト値は AutoSysprep によってランダムに生成されます。
-PostAction: スクリプト実行後に実行する操作。有効な値は次のとおりです:
shutdown: デフォルト値。SID が変更された後、インスタンスを停止します。
reboot: SID が変更された後、インスタンスを再起動します。
quit: SID が変更された後、インスタンスに留まります。
-help: スクリプトの説明と AutoSysprep.ps1 のカスタムパラメーターを表示します。
Windows Server 2008 でスクリプトの命令を表示する際のエラー
症状
次のコマンドを実行して、スクリプトの命令を表示します。
.\AutoSysprep.ps1 -help解決策
次のコマンドを実行して、必要な権限を付与します。
Set-ExecutionPolicy -ExecutionPolicy RemoteSignedWindows Server 2008 でスクリプトを実行する際の「デジタル署名されていません」エラー
症状
次のコマンドを実行してスクリプトを実行します。
.\AutoSysprep.ps1 -skiprearm -postaction "reboot"解決策
次のコマンドを実行してスクリプトを実行します。
powershell -executionpolicy bypass -file c:\AutoSysprep.ps1 -skiprearm -postaction "reboot"特定の要件がない場合、AutoSysprep はランダムにパスワードとホスト名を生成します。