ADMTv3.1を利用して、Windows 2000で構成されているActive Directoryドメインのユーザーとコンピュータを、 Windows Server 2008で構成したActive Directoryへ移行します。
本資料で移行するには、ユーザー、パスワード、コンピュータのみとなります。その他の移行については扱っておりません。 クライアントPCのプロファイルの移行作業を無くすだけであれば、本内容だけで十分です。
<参考資料>
ADMT v3.1 Guide: Migrating and Restructuring Active Directory Domains
ADMT v3.1 を使用した Active Directory ドメインの移行と再構築
ADMTを利用する作業は大きく分けて、以下の作業に分類されます。
移行環境の作成
- 移行に必要な通信路の確保
- ADMTのダウンロード・インストール
- 移行先ドメインに監査ログの設定
- 移行先ドメインにWindows NT 4.0 との互換設定
- gpupdate /forceの実行
- DNS参照環境の作成
- 信頼関係の締結
- お互いのドメインのAdministratorsグループに相手のAdministratorアカウントを登録
- 移行元ドメインの機能レベル(機能レベルが2000混在の場合)を2000ネイティブへ変更
- 移行元ドメインに「NetBIOSドメイン名$$$」というローカル・グループの作成
- TcpipClientSupportレジストリを作成し"1"に設定する
- 移行先ドメインにパスワードファイルの作成(パスワードの移行に利用)
- 移行元ドメインにpwdmig.msiのインストール(パスワードの移行に利用)
- 移行元ドメインコントローラで"パスワードエクスポートサービス"を開始(パスワードの移行に利用)
- ファイアウォールの無効設定
- DNSの詳細設定
- 両ドメインのAdministratorをAdministratorsグループに追加
- レジストリ(AllowNT4Crypto)の追加
- その他
- ADMTの起動
- ユーザーアカウントの移行
- コンピュータアカウントの移行
移行環境の作成
移行に必要な通信路の確保
まず、大前提として移行元ドメインコントローラと、移行先ドメインコントローラで通信が行える必要があります。通信に必要なポート情報は以下の通りです。
サービス名 | ポート番号/TCP or UDP |
---|---|
DNS | 53/tcp, 53/udp |
Kerberos | 88/tcp, 88/udp |
RPC endpoint mapper | 135/tcp, 135/udp |
LDAP | 389/tcp, 389/udp |
SMB over IP (CIFS) | 445/tcp |
Global Catalog LDAP | 3268/tcp |
RPC dynamic ports | 1024-5000/tcp (Windowsのデフォルト設定) |
ADMTを利用して移行を行う場合、必ずそれぞれのドメインのPDCエミュレータとの通信が発生します。
当WEBサイトでは、ドメインコントローラはPDCエミュレータを指す事とします。
ADMTを利用する際には、Windows内部の処理として(外部との通信以外にも)、様々な処理が行われます。
その際に既存のアンチウイルスソフトウェアやファイアウォールソフトウェアが通信の邪魔をする可能性があるので、
出来る限り当該アプリケーションは停止(理想はアンインストール)して実施するのが望ましいです。
ADMTのダウンロード・インストール
ADMT version 3.1 をダウンロード・インストールします。http://www.microsoft.com/downloads/details.aspx?familyid=AE279D01-7DCA-413C-A9D2-B42DFB746059&displaylang=ja
ここでは、Windows Server 2008ドメイン上のドメインコントローラ上にインストールします。
※うまく移行出来ない時にネットワークキャプチャする場合に、PDCエミュレータ上でキャプチャする必要が出てくる為、 (上述してますが)PDCエミュレータ上で作業をするのが望ましいと考えます。
移行先ドメインに監査ログの設定
次に、移行先のドメインに対して監査ログの設定を実施します。この設定は、GPOである「Default Domain Controller Policy」に対して設定します。
Default Domain Controller Policy
コンピュータの構成
聾indowsの設定
セキュリティの設定
ローカル ポリシー
監査ポリシー
アカウント管理の監査:「成功」及び「失敗」の両方を監査する設定を行います。
移行先ドメインにWindows NT 4.0 との互換設定
続けて、下記ポリシーも設定します。Default Domain Controllers Policy
コンピュータの構成
聾indowsの設定
管理用テンプレート
ネットログオン
麓Windows NT 4.0 と互換性のある暗号化アルゴリズムを許可する] :有効
gpupdate /forceの実行
ポリシーのアップデートを行います。gpupdate /force を実行します。
ここまでの作業は、1度のみ設定すれば以後実施する必要はありません。
次の「移行前準備(サーバー)」で行う作業は、移行するドメインの数だけ設定する必要があります。
移行前準備(サーバー)
全体的な作業は以下の図の通りです。
以下にそれぞれの項目毎にまとめます。
DNS参照環境の作成
まず、お互いのドメインのSRVレコードを参照出来る様に設定します。方法としては、以下の方法があります。
- それぞれのドメインコントローラが参照しているDNSサーバーに、
相手のDNSドメインゾーンのセカンダリゾーンを作成する。 - ドメインコントローラが参照するDNSサーバーに対して、お互いのドメインのゾーンをホストするDNSサーバーを作成し、 そのDNSサーバーを参照する様に変更する。
ドメインコントローラのプライマリDNSサーバーとして、相手ドメインのDNSサーバーを指定しても意味がありませんのでご注意下さい。
セカンダリDNSサーバーへ切り替わるタイミングは、プライマリDNSサーバーの応答が無い時のみです。
信頼関係の締結
続けて、移行元、移行先のドメイン間の双方向で信頼関係を作成します。信頼関係の締結については、ADMTの作業範疇から逸れる為、本資料では割愛します。
信頼関係はDNSの設定が正常であれば大体成功しますが、稀にレジストリやメモリに過去の信頼関係の情報が残っていたりすると、
締結に失敗します。つまりDNS、ADSIEDITでオブジェクトの確認、レジストリを確認すると問題解決につながります。
※メモリのクリアは、2000、2003のADでは再起動する必要があり、2008ではAD DSの再起動で行えます。
※メモリのクリアは、2000、2003のADでは再起動する必要があり、2008ではAD DSの再起動で行えます。
お互いのドメインのAdministratorsグループに相手のAdministratorアカウントを登録
信頼関係が無事締結出来たら、お互いのドメイン上のAdministratorsグループに対して、対向ドメインのAdministratorユーザーを追加します。移行元ドメインの機能レベル(機能レベルが2000混在の場合)を2000ネイティブへ変更
移行元ドメインの機能レベルを確認し、2000混在であれば2000ネイティブへ変更します。移行元ドメインに「NetBIOSドメイン名$$$」というローカル・グループの作成
移行元ドメイン上に、(検証ではUsersコンテナに作成)NetBIOSドメイン名に$$$を加えたドメインローカル・グループを作成します。
作成したドメインローカル・グループにメンバを追加する必要はありません。仮に追加するとsIDHistoryの移行に失敗するのでご注意下さい。
TcpipClientSupportレジストリを作成し"1"に設定する
続けて以下のレジストリを移行元ドメインコントローラに設定します。レジストリ:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
エントリ:TcpipClientSupport (REG_DWORD)
値: 1
移行先ドメインにパスワードファイルの作成(パスワードの移行に利用)
パスワードを移行するには、パスワードファイルを作成し、両方のドメインコントローラから作成したパスワードファイルを参照する必要があります。まず、パスワードファイルを作成するには、移行先ドメインコントローラ(ADMTをインストールしたサーバー)で、以下のコマンドを利用します。
admt key /option:create /sourcedomain:移行元ドメイン /keyfile:移行元ドメイン名.pes /keypassword:パスワード
上記の通りですが、/keyfileオプションに指定したファイル名は、任意のファイル名.pesとなります。
ここでは分かりやすい様に、移行元のドメイン名を利用して、キーファイルを作成してます。
ファイル名はフルパスで指定する必要があります。例)c:\SrcDomain.pes 等
また、/keypasswordオプションで指定するパスワードは、移行元ドメインコントローラに対して、pwdmig.msiをインストールする際に必要になります。
ここで作成したpesファイルは、移行元ドメインコントローラから参照する必要があるので、共有フォルダを作成し、作成したpesファイルを移動します。
移行元ドメインにpwdmig.msiのインストール(パスワードの移行に利用)
インストールウィザードの最後に再起動が求められますので、必ず"NO"を選択して、(夜中等の)可能な時間帯に再起動して下さい。
移行元ドメインに対して、pwdmig.msiをダウンロード・インストールします。
http://www.microsoft.com/downloads/details.aspx?familyid=F0D03C3C-4757-40FD-8306-68079BA9C773&displaylang=ja
pwdmig.msiのインストールに関する注意点は以下の通りです。
・パスワードファイルとして移行先ドメインコントローラで共有されているpesファイルを指定します。
ここでpesを指定するとパスワードを聞かれるので、/keypasswordで指定したパスワードを入力します。
・サービスを実行するアカウントを指定します。
※検証では、移行元ドメイン名\administratorをサービスアカウントとして設定しました。
移行元ドメインコントローラで"パスワードエクスポートサービス"を開始(パスワードの移行に利用)
上記でpwdmig.msiをインストールすると、移行元ドメインコントローラ上に「パスワードエクスポートサービス」サービスが作成されます。本サービスが開始されていないと、ADMTでパスワードの移行を行う際にエラーが表示されますので、あらかじめ起動しておく必要があります。
移行前準備(クライアント)
ファイアウォールの無効設定
クライアントPC側で、Windowsファイアウォールが有効になっているもしくは、サードパーティ製のファイアウォール製品がインストール されている場合には、事前に無効もしくはアンインストールする必要があります。DNSの詳細設定
ADMTを利用して移行する際は、DNSに登録されている情報に依存する為、あらかじめDNSの設定を正常化しておく必要があります。加えて、ドメインの変更の際にも正常なDCへの通信や登録を行う為にも、以下の設定を行う必要があります。
・プライマリDNSサーバーの設定が、移行元のドメインコントローラ等の正常なDNSを利用している
・[プライマリおよび接続専用のDNSサフィックスを追加する]にチェックを入れる
・[この接続のアドレスを DNS に登録する] にチェックを入れる
・[この接続のDNSサフィックス]に移行元のドメイン名を登録する
・[この接続のDNSサフィックスをDNS登録に使う]にチェックを入れる
両ドメインのAdministratorをAdministratorsグループに追加
移行元のAdministratorアカウント及び、移行先のAdministratorアカウントを、明示的にクライアントPCのAdministratorsグループに追加します。レジストリ(AllowNT4Crypto)の追加
以下のレジストリを設定します。レジストリ:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Netlogon\Parameters
エントリ:AllowNT4Crypto (REG_DWORD)
値: 1
本設定を実施するクライアントOSは、Windows2000、XP、2003のみです。Windows Vistaは含まれません。
その他
個人的にはあまり存在しないと思いますが、[Microsoft ネットワーク用ファイルとプリンタ共有]が無効の場合、 ADMTを利用する事が出来ない為、確認する必要があります。また、これらのクライアントPCの設定を1台づつ行うのは現実的はありませんので、スクリプトを利用して 一括設定してしまうのが良いと思います。
加えて、これらの設定後には必ず再起動が必要な為、スクリプトの配信は、ADMTによる移行を行う2〜3日前までには、 実施しておく必要があります。
移行
ADMTの起動
デスクトップやスタートメニューから、「Active Directory移行ツール」を実行します。「Active Directory移行ツール」を右クリックすると、画面の様なメニューが表示されます。
今回は、ユーザー・パスワードと、コンピュータを移行するので、 利用するウィザードは「ユーザーアカウントの移行ウィザード」と「コンピュータの移行ウィーザード」です。
※パスワードは「ユーザーアカウントの移行ウィザード」の途中で移行するオプションが表示されます。
ユーザーアカウントの移行
「ユーザーアカウントの移行ウィザード」を実行します。
まず、移行元のドメイン名、ドメインコントローラと移行先のドメイン名、ドメインコントローラを設定します。
ドメイン名は入力する必要がありますが、ドメインコントローラはADMTが自動的に検索します。
ここで入力されたドメイン名は「Active Directory移行ツール」の起動時に確認されますので、
信頼関係を削除した後に「ユーザーアカウントの移行ウィザード」を起動すると、エラーが表示されます。
既存ドメイン上から、移行したユーザーオブジェクトを選択するので、「ユーザーをドメインから選択」に チェックを入れます。
「追加」をクリックしてユーザーを選択します。
移行先のOUを選択します。
パスワードの移行に関して設定します。
・複雑なパスワードを生成する:移行時にパスワードが自動作成されます。
・パスワードの移行:パスワードを移行します。
・既存ユーザーのパスワードを更新しない:このチェックは必須です。
パスワード移行元のDCが表示されます。
この画面で、「パスワードの移行」を選択した場合、移行元のDC上で、
「パスワードエクスポートサービス」のサービスが開始されている必要があります。
ここでは移行元アカウントを無効にしてますが、無効にする必要は特にありません。
むしろ移行元アカウントは無効にしない方がトラブルが出なくて済みます
※移行元アカウントを無効にすると、利用中のユーザーがプリンタやファイルを利用出来なくなってしまいます。
「ユーザーSIDを移行先ドメインへ移行」オプションは、旧ドメインが残り、 その旧ドメインへのリソースを、移行するアカウントが利用する場合には必須です。
※ドメインの移行をする(移行元ドメインが残らない)のであればチェックは不要です。
「ユーザーSIDを移行先ドメインへ移行」を利用した状態で、PDCエミュレータとの通信が出来ないといったエラー
が表示される場合があります。その場合は移行前準備などの設定が抜けている可能性があります。
しつこい様ですが、上記エラーが表示されても、移行元ドメインが残らないのであれば(ドメイン自体の移行で ADMTを利用しているのであれば)本エラーが出ない様に、「ユーザーSIDを移行先ドメインへ移行」オプションを 無効に(チェックを外して)して先に進めてしまっても、プロファイルの移行は可能です。
しつこい様ですが、上記エラーが表示されても、移行元ドメインが残らないのであれば(ドメイン自体の移行で ADMTを利用しているのであれば)本エラーが出ない様に、「ユーザーSIDを移行先ドメインへ移行」オプションを 無効に(チェックを外して)して先に進めてしまっても、プロファイルの移行は可能です。
移行元のAdministratorアカウント情報を入力します。
上記画面がデフォルトの状態です。
このまま「次へ」を選択します。
アカウントのプロパティで除外する項目を選択します。
通常はデフォルトのままで問題ありません。
移行先に移行元と同じアカウントが存在した場合のオプションです。
大規模環境の場合、同一ユーザーが互いに存在している可能性があるので、 安易に結合するとトラブルを招きます。よって、競合した場合は移行出来ないように設定し、 エラーが発生(競合が発生)したアカウントをログから確認し個別に調査した方が無難です。
これでユーザーアカウントのウィザードは完了です。
あとはログを確認して正常に移行されているかを確認して下さい。
コンピュータアカウントの移行
コンピュータアカウントの移行は、オブジェクトの移行自体はユーザーアカウントの移行と大差ありませんが、 実際のクライアントPCの所属ドメインを、"リモートから変更"する必要がありますので、 かなり注意が必要となります。まず、コンピュータアカウントの移行ウィザードを開始して下さい。
同様に移行元ドメイン及びDCと、移行先ドメイン及びDCが選択されます。
ここも同じように、コンピュータアカウントを選択します。
移行先のOUを選択します。
オブジェクトで変換する項目を選択します。
全て選択します。
※全て選択すると、(導入しているアプリケーションによっては)いくつかの項目でエラーが発生しますが、 移行後に問題が出たケースは(今のところ)ありません。
理屈では「置換」でも問題ないと思いますが、「追加」でも問題は出ておりません。
コンピュータアカウントの移行をした後に、コンピュータアカウントの所属ドメインの変更を行います。 ここで設定した値が、リモートでドメイン所属が成功した後に再起動する待ち時間になります。
この値は1〜10までで入力する必要があります。
除外するプロパティを選択します。
競合した場合の動作を選択します。
完了を押すと移行が開始されます。
移行が完了し、ウィザードを閉じるとエージェントの管理画面が表示されます。
意味としては、それぞれ以下の通りです。
「事前確認」
クライアントPCに対してエージェントが稼働出来る通信が可能かどうか。
事前確認は重要なプロセスです。
Firewallや、そのPCが正常にドメインと通信出来ていないと「失敗」します。
事例としては、以下の状態で移行の成功率が高くなります。
・コンピュータにドメインアカウントでログオンしている
・Windows Firewall及びその他Firewallアプリケーションが無効になっている。
・移行前準備(クライアント)の作業が全て行われている。
・コンピュータにドメインアカウントでログオンしている
・Windows Firewall及びその他Firewallアプリケーションが無効になっている。
・移行前準備(クライアント)の作業が全て行われている。
「エージェントの操作」
実際のエージェントの処理
事例としては、以下の状態で移行の成功率が高くなります。
・移行前準備(クライアント)の作業が全て行われている。
・移行前準備(クライアント)の作業が全て行われている。
「事後確認」
再起動後に、移行が正常に出来ているかの確認
「失敗」してもドメイン所属の変更さえ正常に出来ていれば問題が起きたケースは(今のところ)ありません。
全ての内容が確認とれたら、「開始」をクリックします。
以下のログが結果となります。
特筆すべき点は以下の通りです。
- ファイルの変換に失敗している
- 「ドメインの所属を「」に変更しました」と表示されている
以上でADMTの利用方法は終了ですが、この情報は実体験を持って記載しております。 精度を高くする為、その他の情報をお持ちであれば(いつでも)ご提供お願い致します。
また、これらの準備作業については行わなくても正常に動作するケースもありましたが、 ADMTはサーバー・クライアント・ネットワークと全てに依存するので、1台での検証は正直あまり意味がありませんでした。 これらの準備作業を全て実施し、ActiveDirectoryの基本動作が正常に行われていれば、ほぼ成功します。