ドメインコントローラを Windows Server 2003 に置き換える

SERVER


ドメインコントローラの移行

Windows 2000 Server にて稼動しているドメインコントローラがあるのですけど、ドメインコントローラは Windows Server 2003 に任せて、それまで使っていたドメインコントローラは停止させてみようと思います。

なので手順としては、既に稼働中の Windows 2000 Server が管理しているドメインへ、新たに Windows Server 2003 をメンバとして参加させ、それをメインで使うドメインコントローラへと昇格する感じになるのではないかと思います。

 

さっそく Windows Server 2003 を用意してそれを既存のドメインへ参加させ、作業を進めて行きます。

 

DNS のインストール

これは必須ではないかもしれないですけど、同一コンピュータ上にドメイン情報を保持する DNS サーバを用意したかったので、まずは DNS サービスのインストールから行ってみることにします。

「コントロールパネル」 の 「サーバーの役割管理」 から、”役割を追加または削除する” を選択します。そして ”DNS サーバー” を選択して次へ進み、ウィザードに従ってインストール作業を進めれば特に問題なくインストール完了となりました。

 

とりあえず、この DNS サーバにはドメインに関するゾーンは転送せずに、既存のドメイン関連の DNS サーバを設定しておくことにしました。

 

Active Directory インストールでの問題

”サーバーの役割管理” から ”ドメインコントローラ (Active Directory)” のインストールを行ってみます。

Active Directory のインストールウィザードを進めて行くと、まず最初にドメインコントローラの種類を尋ねられるので、今回は ”既存のドメインの追加ドメインコントローラ” を選択しました。すると参加しているドメインへ追加ドメインコントローラとして参加させることが出来る権限を持ったアカウントを尋ねられるので、相応のアカウントを入力します。

これで既存のドメインコントローラに接続できるはずだったんですけど、なにやらエラーが発生してしまいました。

フォレストにあるドメイン一覧にアクセスできませんでした。

DNS 参照エラーが原因である可能性があります。一般的な DNS 参照エラーのトラブルシューティングに関する詳細は、Microsoft Web サイト http://go.microsoft.com/fwlink/?LinkID=5171 を参照してください。

エラー:

RPC サーバを利用できません。

とりあえず、フルドメイン名 (完全な DNS 名) が指定されていたので、それをログオン画面で選択するときに使用する短いドメイン名に書き直してみたところ次へ進むことが出来ました。次でフルドメイン名の指定となり、正しい名前が既に記載されていたのでそのまま次へ進みます。

そして Active Directory のデータベースとログを保存するフォルダを指定して、他に SYSVOL フォルダの場所は、ディレクトリサービス復元モードで使用するパスワードを入力すれば、いよいよ情報の複製開始となるのでした。

 

が、今度はドメインコントローラ (フルドメイン名) へ到達できないとのことでエラーとなってしまいました。

ためしに ping で確認してみると、たしかに "Ping request could not find host *****." というようなメッセージが帰ってきてしまうので、これは DNS サービスの設定がなにやら間違ってしまっているのでしょう。

このとき、DNS サーバを最初に設定した自分自身としていました。そしてフォワーダとして、既存のドメインを管理している DNS サーバを登録していたのが原因だったようです。

それを少し調整することで解決したのですけど、そうしてみたところ、今度は次のようなエラーとなってしまいました。

指定されたドメインがないか、またはアクセスできません。

なんだかフォワーダが悪さをしていそうな感じでした。なので素直に、ネットワークの DNS サーバ設定を、既存のドメインの DNS サーバとしてみたところ、これらに関する問題は簡単に解消されたのでした。

 

そして、今回の本題とも言うべきエラーが発生したのでした。

次のエラーにより、操作に失敗しました:

Windows Server 2003 Server のインストール用にフォレストが準備されていないために Active Directory インストールウィザードを続行できません。Adprep コマンドラインツールを使ってフォレストおよびドメインの両方を準備してください。

"ソースフォレストの Active Directory スキーマのバージョンはこのコンピュータの Active Directory のバージョンと互換性がありません。"

これは Windows 2000 Server で構成されたドメインへ Windows Server 2003 のドメインコントローラを存在させようとしたときに、Active Directory スキーマの下位互換の問題で発生するエラーのようです。

 

Active Directory スキーマを更新する

Windows 2000 Server で構成されているドメインへ Windows Server 2003 をドメインコントローラとして参加させるために、スキーママスターとして動作しているドメインコントローラのスキーマを更新します。

 

これに関しては Microsoft 社の ”Windows Server 2003 ドメイン コントローラを Windows 2000 フォレストに昇格できない” というページにて対応策が掲載されていましたので、それに沿って対応してみることにします。

今回の自分の環境では、ドメインコントローラは Windows 2000 Server のものが 1 台だけですので簡単そうですけど、複数台用意している場合にはいろいろ注意しつつ行いましょう。また、Microsoft Exchange 2000 が導入されている場合にも注意する必要があるそうです。

 

Service Pack 2 以降であるかの確認

それに先立って、Windows 2000 Server で構成されているすべてのドメインコントローラへ Service Pack 2 以降をインストールする必要があるとのことでした。

Windows 2000 Server で稼働中のドメインコントローラの ”システムのプロパティ” で確認してみたところ、Service Pack 4 がインストールされていたのでここは問題なしでした。

 

各種マスターの確認

スキーマを更新するに当たって、”スキーママスタ” と ”インフラストラクチャマスタ” のそれぞれの役割を担うドメインコントローラを確認しておく必要があるとのことでした。今回は 1 台しかドメインコントローラが存在していない環境なので必要ないかもしれないですけど、念のため確認しておくことにします。

 

管理ツールの ”Active Directory ユーザーとコンピュータ” を起動して、該当するドメイン名の上で右クリックしたら、【操作マスタ】 を選択します。

するとダイアログボックスが現れるので、そこの 【インフラストラクチャマスタ】 タブで、インフラストラクチャの操作マスタにどのドメインコントローラが割り当てられているかを確認することが出来ます。

 

困ったのが、スキーママスタの確認でした。

どこで確認したら良いのかよく判らずにいろいろと調べてみたのですけど、どうやら、手動で ”Active Directory スキーマ” スナップインを登録しないといけないとのことでした。これを登録するには、ドメインコントローラの存在しているサーバでコマンドプロンプトを起動して、次のように打ち込んであげ ます。

regsvr32 schmmgmt.dll

そうしたら、引き続き次のようにでも入力して、Microsoft Management Console (MMC) を起動します。

mmc

起動したら、システムメニューの 「コンソール」 から、「スナップインの追加と削除」 を選択します。そして 「追加」 ボタンを押して ”Active Directory スキーマ” を追加すれば、この MMC ではこのスナップインが利用可能となります。

そして ”Active Directory スキーマ” と書かれたところで右クリックして、「操作マスタ」 を選択すれば、スキーマの操作マスタとして割り当てられているドメインコントローラを確認することが出来ました。

 

スキーマ更新の準備

スキーマの更新を行うにあたって、念のためスキーママスタをバックアップします。

これは NTBACKUP というツールを使用して、システム状態をバックアップしておけば問題ないそうです。さっそくスキーママスタを担当しているサーバ上で NTBACKUP.EXE を実行し、システム状態をローカルドライブへバックアップしておきました。

 

 

スキーママスタの更新

スキーママスタをネットワークから切断して、いよいよスキーマの更新作業に入ります。

スキーママスタとして実行されている Windows 2000 Server へ、Windows Server 2003 の CD-ROM を挿入します。そしてコマンドプロンプトを利用して、CD-ROM ドライブの "I386" フォルダに保存されている ADPREP.EXE を次のように実行します。

adprep /forestprep

すると Service Pack に関する注意事項が表示され、問題なければ画面に表示されているように "C" を押してから [Enter] を押すことで、スキーママスタの更新処理が始まりました。

そして数分ほどで ”Adprep はフォレスト全体の情報を正しく更新しました。” というメッセージがコンソールに表示されて終了しました。

 

念のためイベントビュアの "Directory Service" を中心に、エラーがないか確認してみましたけど特に問題はなさそうでしたので、ネットワーク接続を有効にして、スキーママスタの更新作業は終了です。

 

スキーマ情報の伝播を待つ

スキーママスタとインフラストラクチャマスタとが別々のサーバで担われている場合は、スキーママスタで行った更新がインフラストラクチャマスタの方でも有効になるように、少し待つ必要があるとのことでした。

今回は同じサーバなので必要はないと思うのですけど、ともあれ別々の場合は 15 分程度待てば大丈夫だそうですけど、状況によっては 1 日近く待つ必要がある場合もあるとのことです。

 

ともあれ更新が行き届かないままインフラストラクチャマスタの更新を行うと、その旨を示すエラーが表示されるとのことなので、行き届いたかどうかはそれで判断してしまって良さそうです。

 

インフラストラクチャの更新

インフラストラクチャマスタとして実行されている Windows 2000 Server へ、Windows Server 2003 の CD-ROM を挿入します。そしてコマンドプロンプトを利用して、CD-ROM ドライブの "I386" フォルダに保存されている ADPREP.EXE を今度は次のように実行します。

adprep /domainprep

すると今度は特に通知されることなく数分間待たされた後、”Adprep はドメイン全体の情報を正しく更新しました。” というメッセージだけが表示されて終了しました。

今回も特に、イベントビュアにはエラーも表示されていなかったので、これで問題ないのでしょう。

 

インフラストラクチャ更新の伝播を待つ

インフラストラクチャマスタで行った更新がすべてのドメインコントローラに行き届くまで、少し待つ必要があるとのことでした。

今回はドメインコントローラが 1 台なので必要はないと思うのですけど、ともあれ別々の場合は 15 分程度待てば大丈夫だそうですけど、こちらも状況によっては 1 日近く待つ必要がある場合もあるとのことです。

 

ともあれ更新が行き届かないまま Windows Server 2003 をドメインコントローラにしようとすると、しばらく待つように指示されるとのことなので、行き届いたかどうかはそれで判断してしまっても良さそうです。

 

Windows Server 2003 をドメインコントローラに昇格する

これで Windows Server 2003 を Windows 2000 Server で構成されたドメインへ参加させる準備が整ったと思うので、改めて Windows Server 2003 にて Active Directory のインストール作業を再開します。

”サーバーの役割管理” から ”ドメインコントローラ (Active Directory)” のインストールを実行して、必要事項を入力しつつウィザードを進めて行くと、今度は無事、問題なく Active Directory のインストール処理が進んで行きました。

そして数分ほどして Active Directory のインストール完了を知らせるメッセージが表示され、ようやく Windows Server 2003 もドメインコントローラになることが出来ました。

 

ドメインコントローラを置き換える

今回の目的は Windows 2000 Server で稼働中だったドメインコントローラを、新規で用意した Windows Server 2003 のドメインコントローラに置き換えることだったので、最後にその作業を行います。

 

操作マスタの転送

そのために各操作マスタを、Windows 2000 Server のドメインコントローラから、新たに用意した Windows Server 2003 の方へと移動します。移動の方法には管理ツールを用いて行う方法もありますけど、コマンドラインを使って移動させる方法もあるようでしたので、それで行ってみることにします。

移動先の Windows Server 2003 にログオンしてコマンドプロンプトを起動したら、次のコマンドを実行します。

ntdsutil

すると次のような内容を尋ねられるので、回答して行きます。

ntdsutil: roles
fsmo maintenance: connections
server connections: connect to server [DIST_SERVERNAME]
server connections: quit
fsmo maintenance: transfer [FSMO_ROLENAME]
fsmo maintenance: quit
ntdsutil: quit

[DIST_SERVERNAME] には役割を転送したいサーバの名前を入力します。今回の場合は現在ログオンしているサーバの名前で、それは NetBIOS 名 (短い名前) で大丈夫みたいでした。

また [FSMO_ROLENAME] は移動したい操作マスタ名で、これは次に記す名前で指定します。

domain naming master ドメインネーミングマスタ (フォレスト毎)
infrastructure master インフラストラクチャマスタ (ドメイン毎)
PDC PDC エミュレータ (ドメイン毎)
RID master RID プールマスタ (ドメイン毎)
schema master スキーママスタ (フォレスト毎)

 

今回はすべての役割を移動しようと思っているので、これら 5 つすべてについて行いました。

一度 "connections" を行ってドメインコントローラへ一度接続すれば、後は連続して "transfer" を行えるようです。転送をしようと "transfer" を実行すると、転送しても良いかと訪ねられるので、「はい」 を押して転送処理を行って行きます。

C:\> ntdsutil

ntdsutil: roles

 

fsmo maintenance: connections

server connections: connect to server NEW_DC

server connections: quit

 

fsmo maintenance: transfer domain naming master

fsmo maintenance: transfer infrastructure master

fsmo maintenance: transfer PDC

fsmo maintenance: transfer RID master

fsmo maintenance: transfer schema master

 

fsmo maintenance: quit

ntdsutil: quit

これで操作マスタの役割がすべて転送できました。

 

グローバルカタログの設定

あとはこの Windows Server 2003 のドメインコントローラも、グローバルカタログとして設定しておきます。

グローバルカタログというのは、フォレスト内のすべての Active Directory オブジェクトのコピーを保持するドメインコントローラとのことで、これによってオブジェクトの検索やその他の機能を、高速に、そして少ないネットワークトラフィックで転送することが出来るとのことでした。

ともあれこのグローバルカタログは、フォレストに 1 つ以上ないといけないようなので、置き換えるにあたってこれを設定しておく必要があるのでした。

 

管理ツールから 「Active Directory サイトとサービス」 を起動して、"Site" → "Default-First-Site-Name" → "Servers" とたどって行き、該当するサーバの "NTDS Settings" のプロパティを表示します。

すると 「全般」 タグの下の辺りに ”グローバルカタログ” という項目があるので、ここにチェックを入れます。

ただしこれには少し時間がかかるようなので気をつけましょう。イベントビュアの ”ディレクトリサービス” の項目を参照して、"NTDS General" の ”グローバルカタログ” というログを見ては、「現在、このドメインコントローラはグローバルカタログです。” という表記が現れれば、たぶんこれで転送完了です。

 

Windows 2000 Server をメンバサーバへ降格する

Windows Server 2003 をグローバルカタログおよび各種操作マスタに変更したので、今まで使用していた Windows 2000 Server のドメインコントローラを一般のサーバへと降格することにします。

もちろんそのまま使用してもいいのですけど、今回は Windows 2000 Server の方は完全に停止させてしまう予定なので、正式に降格させておくことにしました。

 

降格したい Windows 2000 Server のドメインコントローラへログオンしたら、コマンドプロンプトにて次のようにします。

dcpromo

すると Active Directory のインストールウィザードが起動するので、これを用いて Active Directory の削除処理を行います。

 

まず最初に 「次へ」 進むもうとすると、このドメインコントローラがグローバルカタログであるとのことが記されたダイアログが表示されました。グローバルカタログはログオンの処理に使用されるとのことで、このサーバを削除する前に他にちゃんとグローバルカタログが存在しているかを確認せよとのことでした。

今回は新たに立ち上げた Windows Server 2003 のドメインコントローラの方にもグローバルカタログの役割を割り当てていますので大丈夫なはずです。

 

次に、このドメインコントローラが最後のドメインコントローラかどうかを尋ねられます。

すなわち、このサーバ以外にはこのドメインを管理しているドメインコントローラが存在せずに、これを削除するとそのドメインがなくなるかどうかという感じです。今回は別のドメインコントローラが用意されていますので、最後のドメインコントローラではないです。

そして、ドメインから離脱した後に、このコンピュータ (ローカル) へログオンするための管理権限 (Administrator) アカウントのパスワードを指定します。これは今後、このコンピュータの Administrator アカウントでログオンする場合に使用したいパスワードです。

 

これで後は Active Directory ウィザードがいろいろと手続きを行ってくれて、しばらくすると降格手続きが完了しました。

完了後に再起動すると、そのコンピュータは既存のドメインのメンバサーバへと降格され、ドメインコントローラのレプリケーション (複製) 元からも自動的に削除されました。”Active Directory サイトとサービス” の画面ではこのサーバ名こそ存在するものの "NTDS Settings" という項目は消えているようなので、これもきっとあとで削除するなりしておけば問題ないのでしょう。