図1 ドメインのオブジェクトの移行を実行した画面
図1 ドメインのオブジェクトの移行を実行した画面
[画像のクリックで拡大表示]
図2 オブジェクトをエクスポートした側の情報を確認した画面
図2 オブジェクトをエクスポートした側の情報を確認した画面
[画像のクリックで拡大表示]
図3 オブジェクトをインポートした側の情報を確認した画面
図3 オブジェクトをインポートした側の情報を確認した画面
[画像のクリックで拡大表示]

ldifde -d DN名 -s 相手サーバー名 -b ユーザー名 相手ドメイン名 -f LDIFファイル名 && ldifde -i -c 相手のドメイン識別名 自分のドメイン識別名 -f LDIFファイル名

 Active Directoryドメインを移行する必要が生じたときに,ドメインの情報をいちいち手で再入力していては大変な手間です。こんなときはldifdeコマンドを使えば,オブジェクトの情報をOUの構成ごとエクスポートし,そのまま別のActive Directoryにインポートすることができます。

 例えばWindows 2000ドメイン上の「OU=Accounts,<ルートDN>」にある,コンピュータ・アカウントを除くユーザー・アカウントやグループ,OUをエクスポートし,そのまま異なるWindows Server 2003ドメインにインポートしたい場合を想定します。この場合は,インポート先のWindows Server 2003ドメイン・コントローラ上から以下のコマンドを実行します(図1)。

ldifde -d "OU=Accounts,DC=chabcorp,DC=local" -s chabmb05 -b administrator chabcorp.local * -r "(!objectClass=computer)" -o userAccountControl -m -u -f export.ldf && ldifde -i -u -c DC=chabcorp,DC=local DC=example,DC=com -f export.ldf

コマンドを実行後に,エクスポート側のWindows 2000とインポート側のWindows Server 2003とで,同じ情報が設定されていることがわかります(図2,図3)。

 実行したコマンドのうち「-r "(!objectClass=computer)" 」,検索結果からコンピュータ・オブジェクトだけを除外する,というフィルタとなります。フィルタ演算子には&(アンパーサント)=and,|(パイプライン)=or,!(エクスクラメーション)=not,などがあり使い分け可能です。

 また,Windows Server 2003デフォルトのパスワード・ポリシーの場合,アカウントが有効な状態ではインポートに失敗してしまいます。そのためuserAccountControl属性を除外して無効の状態でインポートし,あとでパスワード設定とアカウント有効化を指定します。あるいは,「csvdeコマンドで複数のユーザー・アカウントを一括登録する」の使用例で示したものと同様に「ドメイン・セキュリティ・ポリシー」のパスワード・ポリシーを変更すれば,そのままでもインポート可能です。

 なお,この方法でldifdeコマンドを使ってインポートした場合も,csvdeコマンドと同様にSIDは引き継がれませんので,ユーザー・プロファイルの引き継ぎなどには注意してください。