操作マスタが常に特定のコンピュータに固定されていると、そのコンピュータが故障したとき、あるいは引退・代替するときに具合が悪い。そこで、ひとつのドメインにドメインコントローラが複数存在する場合には、FSMOの機能を別のドメインコントローラに移管できるようになっている。
ただし、移管は個々の機能ごとに行うため、どの機能を、どのドメインコントローラから、どのドメインコントローラに移管したのかを把握しておかないと、後で混乱する原因になる。注意したい。何も移動していない状態では「最初にセットアップしたドメインコントローラ」という目安があるが、操作マスタを移動してしまうと目安がなくなるからだ。
移動に使用する管理ツール
移管作業には、それぞれ、表1の管理ツールを使用する。
表1: FSMOを構成する機能と、使用する管理ツールの対応関係
機能 | 使用する管理ツール |
スキーママスタ | Active Directoryスキーマ |
ドメイン名前付け操作マスタ | Active Directoryドメインと信頼関係 |
RIDプールマスタ | Active Directoryユーザーとコンピュータ |
PDCエミュレータ | Active Directoryユーザーとコンピュータ |
インフラストラクチャマスタ | Active Directoryユーザーとコンピュータ |
いずれも作業の手順は共通で、以下のようになっている。
- まず、操作マスタになっているドメインコントローラでログオンする
- 移管に使用する管理ツールを起動する
- 移管先となるドメインコントローラにリモート接続して、移管操作を行う
ただし、注意しなければならないのは[Active Directoryスキーマ]管理ツールだ。というのは、MMC.EXEを単独で起動してスナップインを追加しようとしても、この管理ツールに対応するスナップインが登録されておらず、一覧に現れないからだ。そこで、コマンド プロンプトを起動して、以下のコマンドを入力する。
regsvr32 %SystemRoot%\System32\Schmmgmt.dll
この操作を行うと、[Active Directoryスキーマ]管理ツールに対応するスナップインを、MMCコンソールに追加できるようになる。
具体的な移動の手順
では、実際に操作マスタを移動する際の手順を見ていこう。すでにMMC管理ツールの準備はできているものとする。
- 移管元となるドメインコントローラにログオンして、移管する操作マスタの機能に対応するMMC管理ツールを起動する
- [Active Directoryドメインと信頼関係]管理ツールでドメイン名前付け操作マスタを移管する場合に限り、左側のツリー画面最上階層にある[Active Directoryドメインと信頼関係]をクリックして選択する必要がある。他の場所を選択していると、[操作]メニューに[ドメインコントローラに接続]が現れないためだ
- [操作]-[ドメインコントローラに接続]を選択する
- 続いて表示するダイアログで、操作マスタの移管先となるドメインコントローラを指定する。これにより、操作対象がリモート接続先のドメインコントローラに切り替わる
- [操作]-[操作マスタ]、あるいはドメイン名で右クリックして[操作マスタ]を選択する
- 続いて表示するダイアログで、移管操作を行う。ただし、[Active Directoryユーザーとコンピュータ]管理ツールでは、移管できる機能が3種類あるため、表示するダイアログでは個々の機能ごとにタブが分かれており、合計3枚のタブがある。そのため、移管する機能に対応するタブに移動しなければならない。(その他の管理ツールで表示するダイアログでは、タブには分かれていない)
- [変更]をクリックすると、「4.」で接続しておいたドメインコントローラに、対応する操作マスタの機能を移管する。
移管する機能に対応するMMC管理ツールで、[操作]-[ドメインコントローラに接続]を選択して、移管先のドメインコントローラに接続する
[操作]-[操作マスタ]を選択する
続いて表示するダイアログで、[変更]をクリックする。[Active Directoryユーザーとコンピュータ]管理ツールでは、移管したい機能に合わせて、タブの選択が必要になる点に注意
コマンド操作による強制移動
操作マスタになっているドメインコントローラが正常に動作している状態であれば、前述の手順によって別のドメインコントローラにFSMOの機能を移管できる。しかし、ハードウェア障害などでドメインコントローラが突発的に使用できなくなった場合には、状況が異なる。移管しようにも、元が使えない状態になっているからだ。
そのまま放置しておくとActive Directoryの動作に支障をきたす可能性があるため、強制的に、別のドメインコントローラに操作マスタの機能を移動する。そこで使用するのが、前々回にも登場したntdsutilコマンドだ。
ただし、この方法は移管元のドメインコントローラが突発的に使えなくなった非常事態に際して、緊急避難的に使用するものだ。あくまで、元のドメインコントローラを復活させた後で、操作マスタの機能を元のドメインコントローラに戻すことが前提になる。
以下に示す操作手順は、2台のドメインコントローラがあり、そのうち1台がダウンした場合を想定している。なお、操作の途中で、「q」コマンドで上位のプロンプト(コンテキスト)に戻る操作が介在するため、それを忘れると混乱の元だ。常に、表示しているプロンプトが正しいかどうかに注意する必要がある。
- 操作マスタの強制移管先となるドメインコントローラにログオンする。
- コマンドプロンプトを起動して、「ntdsutil」と入力する。すると、ntdsutilコマンドのプロンプトを表示する。
- 「domain management」と入力する。すると、プロンプトが「domain management:」に切り替わる。
- 「connections」と入力して、ドメインコントローラに接続する。
- 「<接続先サーバ名> に結合しています...ローカルでログオンしているユーザーの資格情報を使って <接続先サーバ名> に接続しました」と表示したら「q」と入力して、元のdomain managementプロンプトに戻る。
- 「select operation target」と入力して、select operation targetプロンプトに移動する。
- 「list roles for connected server」と入力すると、操作マスタの機能を受け持っているドメインコントローラのLDAP識別名を表示する。
- 「q」コマンドを入力すると、domain managementプロンプトに戻る。さらにもう一度「q」コマンドを入力すると、ntdsutilのプロンプトに戻る。ここまでの作業は、移動の際に指示を間違えないようにするための確認作業だ。ここから先が実際の強制移管作業になる。
- ntdsutilのプロンプトで、「roles」と入力する。すると、プロンプトが「fsmo maintenance」に切り替わる。
- 「seize <FSMOロール名>」と入力する。<FSMOロール名> はFSMOの機能ごとに異なり、のようになっている。このコマンド操作によって、ログオン中のドメインコントローラに、指定したFSMOの役割を強制移動する。
- 同じ操作を繰り返して、ダウンしたドメインコントローラで受け持っていた操作マスタの機能をすべて、捜査中のドメインコントローラに移動する。これで緊急避難は完了する。
- 順番に「q」を入力してプロンプトから抜けて、最後にntdsutilコマンドを終了してコマンドプロンプトに戻る。
表2: FSMOの機能名称と、ntdsutilコマンドで入力するFSMOロール名の対応
FSMOの機能名 | ntdsutilコマンドで入力するFSMOロール名 |
スキーママスタ | schema master |
ドメイン名前付け操作マスタ | domain naming master |
RIDプールマスタ | rid master |
PDCエミュレータ | pdc |
インフラストラクチャマスタ | infrastructure master |
先にも書いたように、個々で行う強制移動把握まで緊急避難なので、使えなくなった移動元のドメインコントローラを復帰させたら、同じ手順によって元に戻す操作を行う。