ActiveDirectoryをフォレスト間で移行する(その1)

     - OS  


こんにちは。DACインフラ開発部の福本です。

多くの企業のユーザー管理に使われているであろうActiveDirectory(以下、ADと略します)ですが、
もちろん当社でもADを使用してユーザーや各種認証の連携を行っています。
当記事は、ドメインの管理・運用を考慮して、子ドメインを新規フォレストに移行&サーバリプレースするシナリオのご紹介です。

このトピック、アドテクには全く関係はないのですが、意外とインターネット上に公開されている情報も少なそうで、
そして、とても自分が困ったので、この記事が誰かのお役にたてれば幸いです。

その1としまして、事前準備編です。

※環境によってはこの通りに行かないこともあります。本記事を参考にされる際は、その点ご承知おきください。

■環境とツール

今回の環境は以下の通りです。

<移行元>
サーバー名:dc-old-1
OS:WindowsServer2003 SP2
ドメイン名:old.local(NetBIOS名:OLD)
機能レベル: フォレスト→Windows2000混在 ドメイン→Windows2000

<移行先>
サーバー名:dc-new-1
OS:WindowsServer2012 R2
ドメイン名:new.local(NetBIOS名:NEW)

<クライアント環境>
OS:Windows7 Professional Edition

<必要なツール>
・ActiveDirectoryMigrationTool(ADMT)
※移行先のOSによって対応するバージョンが決まっているので、しっかり確認が必要。
URL:https://technet.microsoft.com/ja-jp/library/active-directory-migration-tool-versions-and-supported-environments%28v=ws.10%29.aspx
・PasswordExportService(PES)
※ユーザーアカウントのパスワード移行ができるツール。ツールのバージョンは、ADMTのバージョンに依存する。

<参考ドキュメント>
Active Directory 移行ツール (ADMT) ガイド : Active Directory ドメインの移行と再構築
URL:http://www.microsoft.com/ja-jp/download/details.aspx?id=19188
※必須!

この、「ActiveDirectoryMigrationTool(以降、ADMT)」 が非常に曲者です。
移行元の機能レベルやOS、移行先の機能レベルやOS、そして移行対象のクライアントの条件がシビアであることがわかります。

今回の移行元・移行先の要件を見ると、実はADMTのどのバージョンを使っても移行できません。。
(これに気がつくまでに相当な検証時間と労力がかかりました。)

そのため、当作業では移行フェーズを2段階に分けて実施することにしました。

■移行フェーズ

フェーズ1.既存ドメインを新ドメインに移行する。
フェーズ2.機能レベルを上げた新ドメインで、WindowsServer2012R2をDCとして昇格させる。

ADMTのツールの制約上、機能レベルを上げないとWindowsServer2012R2へは移行できません。
ですが、フォレスト全体の機能レベルがWindows2000混在のため、子ドメインだけ機能レベルを上げることもできません。

そこでADMTを検証した結果、移行用に中間サーバを1台追加することにしました。

環境はこうなります。

<移行元>
サーバー名:dc-old-1
OS:WindowsServer2003 SP2
ドメイン名:old.local(NetBIOS名:OLD)
機能レベル: フォレスト→Windows2000混在 ドメイン→Windows2000

<移行先その1(Phase1の移行先)>
サーバー名:dc-new-0
ドメイン名:new.local(NetBIOS名:NEW)
OS:WindowsServer2008

<移行先その2(Phase2の移行先)>
サーバー名:dc-new-1
ドメイン名:new.local(NetBIOS名:NEW)
OS:WindowsServer2012 R2

<ツール>
ActiveDirectoryMigrationTool 3.1
※Windows2000もサポートしており、検証の結果、Windows7の移行も可能!

PasswordExportService3.1

※注意※
当作業はレジストリ変更を伴うため、サーバ再起動が発生します。
移行元ドメイン側の設定は、可能であればスタンバイ用のADサーバに行ってください。

それでは、準備開始です。

■準備作業

1.移行先サーバに、ActiveDirectoryドメインサービス&DNSサービスのインストール
ここは通常どおりインストールしてください。

2.DNSのフォワーダ設定
意外と盲点なのですが、新ドメインのADの情報を、旧ドメインは認識していません。
そのため、新旧ADサーバ内のDNS設定に、ドメインに対するフォワーダを設定し、ドメインの名前解決ができるようにします。
複数ADサーバがいる場合は、すべてに設定してあげる必要があります。

3.フォレスト間の外部信頼関係の作成
「ActiveDirectoryドメインと信頼関係」から、双方向で信頼関係を作成します。
old.local、new.localでそれぞれ実施し、完了したら入出力の信頼の確認を行って問題ないことを確認します。

4.新旧ドメインで、セキュリティ識別子(SID)のフィルター無効化
ADMTでの移行では、こちらを無効化しておく必要があります。
そこで netdom コマンドが必要なのですが、WindowsServer2003ではデフォルトではインストールされていません。
WindowsServer2003のインストールCD内の 「support.msi」 のインストールを行ってからコマンド実行します。

netdom trust old.local /domain:new.local /quarantine:No /usero:user /passwordo:password
  Setting the trust to not filter SIDs.
  The command completed successfully
netdom trust new.local /domain:old.local /quarantine:No /usero:user /passwordo:password
  Setting the trust to not filter SIDs.
  The command completed successfully

※コマンド内の user・password は、DomainAdminsのアカウントを指定してください

これでSIDフィルター無効化が完了です。

5.旧ドメイン(old.local)に、移行用ユーザーをDomainAdminsとして作成
移行用ユーザーが移行元ドメインに必要なので、専用にアカウントを作成します。
今回は 「MigrationUser」 いう名前で作成し、DomainAdminsを付与します。

6.旧ドメイン(old.local)に、移行用のドメインローカルセキュリティグループを作成
移行元に、ドメインローカルのセキュリティグループを作成する必要があります。
Usersコンテナに、NetBIOS名+$$$ (今回は OLD$$$ )という名前で作成します。
名前は、上記のルールに従ってつける必要があります。

7.新ドメイン(new.local)で、移行用ユーザーに新ドメインの制御の委任を付与
新ドメイン側の 「ActiveDirectory ユーザーとコンピュータ」 で、ドメイン名を右クリックすると「オブジェクト制御の委任ウィザード」が始まります。
ここで、旧ドメインの移行用ユーザーアカウント(MigrationUser@old.local)に、委任タスクを付与します。

8.移行元ADサーバ(dc-old-1)に、レジストリ設定
レジストリエディタを起動して、下記の場所に項目を追加してください。
場所:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
項目:DWORDレジストリ 「TcpipClientSupport」、値「1」

※この後の作業で再度レジストリを追加しますので、再起動はここで行わなくても大丈夫です。

9.移行元・移行先のADサーバで、グループポリシーの変更
「ActveDirectory ユーザーとコンピュータ」から、DomainControllerコンテナを右クリックし、グループポリシータブを開きます。
コンピューターの構成→ポリシー→Windows の設定→セキュリティの設定→ローカル ポリシー→監査ポリシー と展開し、
[アカウント管理の監査]  成功および失敗
[ディレクトリ サービスのアクセスの監査]  成功および失敗
をそれぞれ有効にします。

10.旧ドメイン(old.local)のAdministratorsに、新ドメイン(new.local)のDomainAdminsを追加
11.新ドメイン(new.local)のAdministratorsに、旧ドメイン(old.local)の移行用ユーザー(MigrationUser@old.local)を追加
12.新ドメイン(new.local)のPre–Windows 2000 Compatible Access に、新ドメイン(new.local)のAnonymous Login 、Everyone を追加

それぞれグループ追加です。混乱しないように設定しないと間違えそうです。

これでADMTのインストール以外の準備が完了しました。
とても長かったです。

引き続き、ツールのインストールです。

■ADMT・PESインストール

1.移行先ADサーバ(dc-new-1)に、ADMT3.1のインストール
ここは通常どおりインストールします。一緒にSQLServer ExpressEditionがインストールされます。

2.移行先ADサーバ(dc-new-1)で、PasswordExportServiceインストール用の鍵を作成
ADMTではユーザーアカウントも新ドメインに移行できますが、そのためにはパスワードを移行するために
PasswordExportServiceを移行元サーバにインストールする必要があります。
そのインストールにあたり、事前に鍵を作成する必要があるとのこと。

ADMTをインストール後、下記ADMTインストールディレクトリ(デフォルトはC:\WINDOWS\ADMT)に移動し、
下記のコマンドを実行して鍵を作成します。

admt key /option:create /sourcedomain:old.local /keyfile:keyfile /keypassword:keypassword

※コマンド内の keyfile(パス&ファイル名)・keypassword は、それぞれ任意で指定

3.移行元ADサーバ(dc-old-1)に、PasswordExportService3.1インストール
ここも通常通りインストールします。
インストール時に鍵と鍵作成時のパスワードを要求されますので、それぞれ指定します。

4.移行元ADサーバ(dc-old-1)に、レジストリ設定
パスワード移行用に、さらにレジストリ設定が必要です。
レジストリエディタを起動して、下記の場所に項目を追加してください。
場所:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\LSA
項目:DWORDレジストリ 「AllowPasswordExport」、値「1」

5.移行元ADサーバ(dc-old-1)の再起動
ここでレジストリを反映させるため、サーバの再起動です。

6.移行先ADサーバ(dc-new-1)の再起動
おまじない的にサーバの再起動です。多分不要です。

これで準備作業は完了です。
お疲れ様でした。

■まとめ

ADMTで移行するための準備がようやく整いました。非常に大変でした。
この内容は「Active Directory 移行ツール (ADMT) ガイド」に記載があるのですが、
それをひとつひとつなぞったらこんなことになりました。

特に自分が苦労したのはDNSフォワーダの設定や、ドメイン内のグループ設定の部分でした。
ただ一番苦労したのは上記のガイドを読み解くことだったかもしれません。。。

念のため再度追記しますが、環境によってはこの通りに行かないこともあります。
本記事を参考にされる際は、その点どうぞご承知おきください。

次回は実際の移行作業について書く予定です。
長文・駄文、失礼いたしました。

次記事:「ActiveDirectoryをフォレスト間で移行する(その2)」


DACエンジニア採用情報

  関連記事

Apple-Releases-Safari-10-Developer-Beta-3-for-OS-X-Yosemite-and-El-Capitan
Safari10(iOS10)のインライン動画再生についてまとめてみた

はじめに Safari10からvideoタグを用いたインライン動画再生ができるようになったので、挙動を調べてみました。 Safari 10.0 検証環境 項目 詳細 開発環境 Xcode8.0 検証端末 iPhone7 Simulator ブラウザ iOS Safari / UIWebView / …

dockerlogo
自社サービスのDocker化(後編)

こんにちは。 インフラ開発部の上田です。 前回、前編としてDockerについて書き、早半年も経ちました。 前編はこちらです 今回は後編として、以下について書いてみたいと思います。 ■複数プロセス起動 前編で書いた通り、通常のOS起動時とは異なり、コンテナ上で個別にプロセスを起動する必要があります。 …

ie10
modern.IEを使ってMac上でWindows10を動かす

Microsoftが提供している modern.IE というプロジェクトがある。そこで提供されている仮想環境を使って、MacにWindows10をインストールしてみる。ちなみに、このプロジェクトの本来の目的はInternet Explorerの表示確認やデバッグの支援。 VirtualBoxの準備 …

image2
自社サービスのDocker化(前編)

こんにちは。 インフラ開発部の上田です。 普段は自社開発システムのインフラ担当として、日々頑張って仕事をしています。 今回は、近年話題になっているDockerについて、取り上げてみようと思います! なぜDockerなのか・・・? そもそもDockerとは何か・・・?   当社では様々なサー …

forest
ActiveDirectoryをフォレスト間で移行する(その2)

こんにちは。インフラ開発部の福本です。 2015年も残り約半分ですね。ボーっとしていると、あっという間に日々が過ぎていきます。 その中、少しずつ迫るWindowsServer2003のサポート期限。 保守切れとなるサーバOSの移行に忙殺されているサーバ管理者の方も、いらっしゃるのではないでしょうか。 …