これまでに使用してきた古いWindows Serverから新たにWindows Server 2012へと移行する場合、必ずといっていいほどActive Directoryの移行も伴う。Windows Server 2012の最新のActive Directoryが提供するさまざまなメリットをフルに活用するためにも、移行での失敗は避けたい。
本稿では、以前のActive Directoryを最新のWindows Server 2012環境へ移行するためのポイントと具体的な方法を解説する。
Active Directoryの移行方法は3つ--どの方法を選択するか
前版のWindows ServerからWindows Server 2012のActive Directoryへ移行する場合、大きく分けて3つの方法がある。
その1 既存のドメインコントローラをWindows Server 2012にアップグレード
この方法は、既存のOS、ドメインコントローラを丸ごとWindows Server 2012にアップグレードする方法だ。ただし、失敗した場合には、既存のドメインコントローラが壊れてしまうリスクがある。加えて、Windows Server 2003などの32ビットOSからはWindows Server 2012(64ビットOS環境)にはアップグレードインストールできない。あまりお勧めできる方法ではない。
その2 既存のドメインに新しくWindows Server 2012のドメインコントローラを追加
この方法は既存のドメイン環境をそのままに、ドメインコントローラだけを新しく入れ替える方法だ。既存のドメインに登録したユーザーなどの情報がそのまま引き継げるので、移行にかかるコストを抑えられるメリットがある。
その3 既存のドメインとは別に新しいドメインを作成し、ユーザー情報などを移行する
これは「だれも知らないユーザーが作成されている」「意味もなくドメインがたくさんある」など、既存のドメイン環境に問題があるため、まったく新しいドメインを作成したい場合に採用する方法だ。
異なるドメイン間でユーザー情報などを移行する場合には、専用のツールである「Active Directory移行ツール(Active Directory Migration Tool:ADMT)」がこれまでは使われてきた。残念ながら、本稿執筆時点ではWindows Server 2012用のADMTはまだ提供されていない。そのため、ユーザーやグループなどの情報は手動で移行しなければならない。
以上のように、それぞれの方法にメリット、デメリットがあるが、現実的な選択肢となると移行方法のその2、またはその3になるといえる。そこで今回は、この移行方法2と3について、具体的なステップを解説する。
既存のドメインに新しくWindows Server 2012のドメインコントローラを追加する場合の移行
既存のドメインに、新たにWindows Server 2012サーバをドメインコントローラとして追加する場合は、ドメインコントローラを追加した後、既存のドメインコントローラとの間でデータベースのレプリケーションを行い、ユーザー情報などの移行が完了した段階で、既存のドメインコントローラを削除する。
ドメインコントローラを追加するときは、まず「サーバマネジャ」から「Active Directoryドメインサービス」の役割を追加する。その後、「Active Directoryドメインサービス構成ウィザード」を使い、既存のドメインにドメインコントローラを追加する(画面1)。なお、ウィザード内では、グローバルカタログの役割を割り当てることができるので、必ず役割を割り当てておく。
※クリックすると拡大画像が見られます
ドメインコントローラを追加すると、ドメインコントローラ間のレプリケーションは自動的に行われるので、特別な操作や設定は不要だ。
最終段階では既存のドメインコントローラを削除しなければならないが、削除する前に既存のドメインコントローラが持つ「単一マスタ」と呼ばれる役割をWindows Server 2012ドメインコントローラに移行しておかなければならない。「単一マスタ」の役割を移行するには、コマンドプロンプトから次のコマンドを実行すればよい。
ntdsutil activate instance ntds roles connections connect to server localhost quit transfer PDC transfer RID master transfer infrastructure master transfer naming master transfer schema master
ここまでの操作が完了したら、あとは既存のドメインコントローラを削除するだけだ。既存のドメインコントローラ上で「dcpromo」コマンドを実行して、起動するウィザードの指示に従って削除すれば、移行は完了する。
既存のドメインコントローラを削除したあと、フォレスト機能レベルを「Windows Server 2012」にすると、すべてのWindows Server 2012が持つActive Directoryの新機能が利用できるようになるので、併せて設定しておきたい。機能レベルの変更は「Active Directoryドメインと信頼関係」を利用して行う(画面2)。
※クリックすると拡大画像が見られます
既存のドメインとは別に新しいドメインを作成し、ユーザー情報などを移行する場合の移行
既存のドメインを捨てて、Windows Server 2012で新しいドメインを構成する場合、一般的に既存のドメイン環境から次の情報を移行する。
- ユーザーアカウント
- グループアカウント
- コンピュータアカウント
このほかにもExchange ServerのようにサーバアプリケーションがActive Directoryに保存している情報などもあるが、これは取り出すことが難しい。そこで、今回は上記の3つのアカウントに絞って取り出す方法を紹介する。
ユーザーアカウントの移行
ここでは、Active Directoryのユーザーアカウント情報をエクスポートする「csvde」コマンドを利用する方法を紹介する。「csvde」コマンドを利用すると、Active ディレクトリのユーザーアカウント情報をCSV(Comma Separated Values:カンマ区切り)形式でエクスポート/インポートできるので、ドメイン間で簡単にユーザーアカウント情報を移行できるほか、会社の人事情報をCSVファイルで持っていれば、その情報を基にユーザーを登録できるなどのメリットがある。
実際にユーザーアカウントを移行する場合は、既存のドメインから「csvde」コマンドでユーザーアカウント情報をCSV形式にエクスポートして取り出しておこう。「csvde」コマンドの実行方法は、次のとおりだ。
csvde -f xxx.csv
この操作によって作成される「xxx.csv」ファイルをExcelで開くと、次の画面のようになる。
このファイルから、1行目と「objeclass」の列が「user」となっている行だけを残して不要な列も含めて、すべての行を削除する。ユーザーアカウント情報の移行に最低限必要な列だけを並べたものが、次の画面のようなファイルになる。
最後に、「DN」列に記載されているドメイン名を新しいドメイン名に書き換える。例えば、「contoso.com」というドメイン名であれば、「dc=contoso,dc=com」のように記述する。Excelの置換機能を使えば、簡単にドメイン名を書き換えることができるだろう。
ここまでできたら、今度は「csvde」コマンドを使って新しいドメインにインポートすればよい。実行方法は次のとおり。
csvde -i -f xxx.csv
これでユーザーアカウントの移行は完了である。ここまでの一連の作業を行うときに注意したいのは、「Administrator」のような最初から用意されているアカウントや、実際には使われていない退職者のアカウントなども移行してしまわないように、移行するユーザーアカウント情報については細かく精査することだ。
そのほか、ユーザーアカウントの保存先となるOU(組織単位)を新しいドメインで事前に作成しておくことも忘れないようにしたい。
グループ/コンピュータアカウントの移行
グループアカウントやコンピュータアカウントの移行も、ユーザーアカウントの移行手順と同じように「csvde -f xxx.csv」コマンドを実行してファイルを生成し、ファイルを修正して新しいドメインにエクスポートすることで移行できる。
しかし「既存のドメインとは別に新しいドメインを作成する」という方法を選択した時点で、グループアカウントの情報はそのまま移行して使えるような、きちんとしたルールで作られているとは考えにくい。そこで、筆者のお勧めは、現在の構成がどうであれ、新しくグループを作ってしまうという方法だ。
一方、コンピュータアカウントもユーザーアカウントの移行手順と同様、「csvde -f xxx.csv」コマンドでアカウントの一覧をエクスポートし、エクスポートしたファイルをコンピュータ一覧だけになるように構成して、「csvde -i -f xxx.csv」コマンドでインポートすれば移行できる。
しかし、コンピュータアカウントは単純にアカウントを作成するだけではなく、実際のクライアントコンピュータをドメイン参加させるという作業も行わなければならない。
ここまでのところで、2つのドメインの移行方法について確認してきた。新しいドメインを用意し、既存のドメインからユーザーアカウントやグループアカウント、コンピュータアカウントを移行する方法については、現在のところ、正式な移行ツールが提供されていないため、手順は多少複雑になる。そこで発生するコストなども見越し、どちらの方法でWindows Server 2012のドメインに移行するべきか判断するとよいだろう。
コラム:ユーザーのパスワード設定
「csvde」コマンドではパスワードの移行ができないうえ、新しく設定することもできない。そして、パスワードが設定されていないユーザーアカウントは、パスワードポリシーの制限により、アカウントを有効にすることができない。
そのため、ユーザーを利用できるようにするためには、一時的でもいいから「csvde」コマンドによる移行後、パスワードを再設定する必要がある。
以下のコマンドは「sale」というOUにいる「example.com」ドメインのユーザーに対し、パスワードを一律で「P@ssw0rd」に設定し、アカウントを有効に設定するものだ。
dsquery user ou=sales,dc=example,dc=com | dsmod -pwd P@ssw0rd -disabled no
こうしてユーザーのパスワードを設定しておけば、ユーザーアカウントを使い始めることができるようになる。