操作マスタが常に特定のコンピュータに固定されていると、そのコンピュータが故障したとき、あるいは引退・代替するときに具合が悪い。そこで、ひとつのドメインにドメインコントローラが複数存在する場合には、FSMOの機能を別のドメインコントローラに移管できるようになっている。

ただし、移管は個々の機能ごとに行うため、どの機能を、どのドメインコントローラから、どのドメインコントローラに移管したのかを把握しておかないと、後で混乱する原因になる。注意したい。何も移動していない状態では「最初にセットアップしたドメインコントローラ」という目安があるが、操作マスタを移動してしまうと目安がなくなるからだ。

移動に使用する管理ツール

移管作業には、それぞれ、表1の管理ツールを使用する。

表1: FSMOを構成する機能と、使用する管理ツールの対応関係

機能 使用する管理ツール
スキーママスタ Active Directoryスキーマ
ドメイン名前付け操作マスタ Active Directoryドメインと信頼関係
RIDプールマスタ Active Directoryユーザーとコンピュータ
PDCエミュレータ Active Directoryユーザーとコンピュータ
インフラストラクチャマスタ Active Directoryユーザーとコンピュータ

いずれも作業の手順は共通で、以下のようになっている。

  1. まず、操作マスタになっているドメインコントローラでログオンする
  2. 移管に使用する管理ツールを起動する
  3. 移管先となるドメインコントローラにリモート接続して、移管操作を行う

ただし、注意しなければならないのは[Active Directoryスキーマ]管理ツールだ。というのは、MMC.EXEを単独で起動してスナップインを追加しようとしても、この管理ツールに対応するスナップインが登録されておらず、一覧に現れないからだ。そこで、コマンド プロンプトを起動して、以下のコマンドを入力する。

regsvr32 %SystemRoot%\System32\Schmmgmt.dll

この操作を行うと、[Active Directoryスキーマ]管理ツールに対応するスナップインを、MMCコンソールに追加できるようになる。

具体的な移動の手順

では、実際に操作マスタを移動する際の手順を見ていこう。すでにMMC管理ツールの準備はできているものとする。

  1. 移管元となるドメインコントローラにログオンして、移管する操作マスタの機能に対応するMMC管理ツールを起動する
  2. [Active Directoryドメインと信頼関係]管理ツールでドメイン名前付け操作マスタを移管する場合に限り、左側のツリー画面最上階層にある[Active Directoryドメインと信頼関係]をクリックして選択する必要がある。他の場所を選択していると、[操作]メニューに[ドメインコントローラに接続]が現れないためだ
  3. [操作]-[ドメインコントローラに接続]を選択する
  4. 続いて表示するダイアログで、操作マスタの移管先となるドメインコントローラを指定する。これにより、操作対象がリモート接続先のドメインコントローラに切り替わる
  5. [操作]-[操作マスタ]、あるいはドメイン名で右クリックして[操作マスタ]を選択する
  6. 続いて表示するダイアログで、移管操作を行う。ただし、[Active Directoryユーザーとコンピュータ]管理ツールでは、移管できる機能が3種類あるため、表示するダイアログでは個々の機能ごとにタブが分かれており、合計3枚のタブがある。そのため、移管する機能に対応するタブに移動しなければならない。(その他の管理ツールで表示するダイアログでは、タブには分かれていない)
  7. [変更]をクリックすると、「4.」で接続しておいたドメインコントローラに、対応する操作マスタの機能を移管する。

移管する機能に対応するMMC管理ツールで、[操作]-[ドメインコントローラに接続]を選択して、移管先のドメインコントローラに接続する

[操作]-[操作マスタ]を選択する

続いて表示するダイアログで、[変更]をクリックする。[Active Directoryユーザーとコンピュータ]管理ツールでは、移管したい機能に合わせて、タブの選択が必要になる点に注意

コマンド操作による強制移動

操作マスタになっているドメインコントローラが正常に動作している状態であれば、前述の手順によって別のドメインコントローラにFSMOの機能を移管できる。しかし、ハードウェア障害などでドメインコントローラが突発的に使用できなくなった場合には、状況が異なる。移管しようにも、元が使えない状態になっているからだ。

そのまま放置しておくとActive Directoryの動作に支障をきたす可能性があるため、強制的に、別のドメインコントローラに操作マスタの機能を移動する。そこで使用するのが、前々回にも登場したntdsutilコマンドだ。

ただし、この方法は移管元のドメインコントローラが突発的に使えなくなった非常事態に際して、緊急避難的に使用するものだ。あくまで、元のドメインコントローラを復活させた後で、操作マスタの機能を元のドメインコントローラに戻すことが前提になる。

以下に示す操作手順は、2台のドメインコントローラがあり、そのうち1台がダウンした場合を想定している。なお、操作の途中で、「q」コマンドで上位のプロンプト(コンテキスト)に戻る操作が介在するため、それを忘れると混乱の元だ。常に、表示しているプロンプトが正しいかどうかに注意する必要がある。

  1. 操作マスタの強制移管先となるドメインコントローラにログオンする。
  2. コマンドプロンプトを起動して、「ntdsutil」と入力する。すると、ntdsutilコマンドのプロンプトを表示する。
  3. 「domain management」と入力する。すると、プロンプトが「domain management:」に切り替わる。
  4. 「connections」と入力して、ドメインコントローラに接続する。
  5. 「<接続先サーバ名> に結合しています...ローカルでログオンしているユーザーの資格情報を使って <接続先サーバ名> に接続しました」と表示したら「q」と入力して、元のdomain managementプロンプトに戻る。
  6. 「select operation target」と入力して、select operation targetプロンプトに移動する。
  7. 「list roles for connected server」と入力すると、操作マスタの機能を受け持っているドメインコントローラのLDAP識別名を表示する。
  8. 「q」コマンドを入力すると、domain managementプロンプトに戻る。さらにもう一度「q」コマンドを入力すると、ntdsutilのプロンプトに戻る。ここまでの作業は、移動の際に指示を間違えないようにするための確認作業だ。ここから先が実際の強制移管作業になる。
  9. ntdsutilのプロンプトで、「roles」と入力する。すると、プロンプトが「fsmo maintenance」に切り替わる。
  10. 「seize <FSMOロール名>」と入力する。<FSMOロール名> はFSMOの機能ごとに異なり、のようになっている。このコマンド操作によって、ログオン中のドメインコントローラに、指定したFSMOの役割を強制移動する。
  11. 同じ操作を繰り返して、ダウンしたドメインコントローラで受け持っていた操作マスタの機能をすべて、捜査中のドメインコントローラに移動する。これで緊急避難は完了する。
  12. 順番に「q」を入力してプロンプトから抜けて、最後にntdsutilコマンドを終了してコマンドプロンプトに戻る。

表2: FSMOの機能名称と、ntdsutilコマンドで入力するFSMOロール名の対応

FSMOの機能名 ntdsutilコマンドで入力するFSMOロール名
スキーママスタ schema master
ドメイン名前付け操作マスタ domain naming master
RIDプールマスタ rid master
PDCエミュレータ pdc
インフラストラクチャマスタ infrastructure master

先にも書いたように、個々で行う強制移動把握まで緊急避難なので、使えなくなった移動元のドメインコントローラを復帰させたら、同じ手順によって元に戻す操作を行う。