Active DirectoryのFSMO役割をほかのDCへ強制的に割り当てる【Windows OS】Tech TIPS

Active Directoryのドメインコントローラ(DC)には、FSMOと呼ばれる5つの特別な役割がある。FSMOはドメインごとにどれか1台のDC上でのみ実行される。サーバのリプレースや障害などにより、FSMOの役割をほかのDC上に移行/転送させたいことがある。転送元のDCがダウンしている場合は、ntdsutilコマンドで強制的に役割を割り当てる。

» 2009年06月12日 05時00分 公開
[打越浩幸デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

Active DirectoryのFSMO役割をほかのDCへ強制的に割り当てる【Windows OS】

対象OS:Windows 2000/Windows Server 2003/Windows Server 2008


FSMOを持つドメインコントローラがなくなったら、どうすればいい?

 負荷分散や障害対策のために、複数のドメインコントローラ(以下DC)を使ってActive Directoryを構築しても、「操作マスタ(FSMO:Flexible Single Master Operation)」の役割は特定の1台だけが担当する。現在どのDCがFSMOの各役割を担当しているかはActive Directoryの管理ツールで調査できる(Tech TIPS「Active DirectoryのFSMO役割を担当するサーバを調査する(コマンドプロンプト編)」参照)。

 FSMOを担当しているDCをリプレースしたり、障害などのために起動できなくなった場合は、FSMOの役割をほかのDCに移行させなければならない。Tech TIPS「Active DirectoryのFSMO役割をほかのDCへ転送する(GUI編)」では、GUIのツールを使って転送させる方法を紹介した。

 しかし、転送元のDCと通信できない場合はこの方法は使えない。代わりにntdsutilコマンドを使ってFSMOの役割を強制的に割り当てる必要がある(「転送」と違って、元のDCとは通信しない)。本Tech TIPSではこの方法について紹介する。

 なお、強制転送は最後の手段であり、可能なら元のFSMOのDCの復旧と転送を優先するべきである。それが不可能な場合にはFSMOを強制的に割り当てればよい。ただし、その後、元のDCを復旧してドメインへ参加させたり、FSMOの役割を担当するDCが残っている状態でこの操作を行ったりすると、Active Directoryのデータベースの整合性などに重大な問題が生じる可能性がある。これに関しては、以下のMicrosoft提供の技術情報などを参考にして、事前の準備や移行後の確認などを行っていただきたい。

ntdsutil.exeでFSMOの役割を強制的に割り当てるには

 あるDCにFSMOの役割を強制させるには、コマンドプロンプト上でntdsutil.exeコマンドを使う。

 このコマンドでは、まず対象となる(移行先の)DCへconnectコマンドで接続し、その後、seizeコマンドでFSMOの役割を強制的にそのDCに割り当てる。seizeとは「つかむ」「奪取する」といった意味である。Tech TIPS「Active DirectoryのFSMO役割をほかのDCへ転送する(GUI編)」ではFSMOの役割を転送する方法を紹介したが、それはntdsutil.exeのtransferコマンド(transfer=転送)に相当する。

 以下、順に操作方法を見ていく。

手順その1――強制割り当て先のDCへ接続する

 FSMOの割り当てを変更するには、Enterprise Administratorsグループか(スキーマ/ドメイン名前付けマスタの強制の場合)、Domain Administratorsグループ(RID/PDC/インフラストラクチャマスタの強制の場合)のメンバーとしてログオンし、コマンドプロンプトを開いてntdsutil.exeコマンドを起動する。

 rolesコマンドでFSMOの操作モードに入り、connectionsコマンドでFSMOを割り当てたいDCに接続する。

C:\>ntdsutil ……コマンドの起動
ntdsutil: roles ……fsmoサブコマンド
fsmo maintenance: connections ……接続先の変更
server connections: connect to server w2003dc2.example.co.jp ……dcの指定
w2003dc2.example.co.jp に結合しています...
ローカルでログオンしているユーザーの資格情報を使って w2003dc2.example.co.jp に接続しました。
server connections: quit ……connectionsサブコマンドの終了

ntdsutil.exeで強制割り当て先のDCへ接続する
ここでは、元のFSMOのDCを「w2003dc1」、新しいDCを「w2003dc2」としている。また入力すべきコマンドなどの文字列には、黄色のマーカーを引いている。以下も同様。

手順その2――seizeコマンドで強制的に役割を割り当てる

 DCに接続したら、「seize <役割>」コマンドで5つの役割を強制定期に割り当てる。<役割>にはFSMOの役割の名前を指定する。例えば「seize domain naming master」とすればドメイン名前付けマスタを強制的に割り当てることができる。詳しいコマンド名は「?」でヘルプを表示させると確認できる。なお、seizeではなく「transfer <役割>」コマンドを使うと、強制割り当てではなく、役割を「転送」できる。

fsmo maintenance: seize domain naming master ……強制割り当て

ドメイン名前付けマスタを強制的に割り当てる

 このコマンドを実行すると確認のためのダイアログが表示されるので、[はい]ボタンをクリックして先へ進める。

強制の確認ダイアログ 強制の確認ダイアログ
seizeコマンドでFSMOの役割を強制的に割り当てようとすると、このような確認ダイアログが表示されるので、[はい]ボタンをクリックして処理を許可する。

 [はい]ボタンをクリックすると、処理が行われる。

fsmo maintenance: seize domain naming master
……以下、コマンドの出力
強制前に domain naming FSMO の安全転送を試みています。
ldap_modify_sW エラー 0x34(52 (利用できません).
Ldap 拡張エラーメッセージ 000020AF: SvcErr: DSID-0321032A, problem 5002 (UNAVAILABLE), data 8524

Win32 エラー 0x20af(要求された FSMO の操作に失敗しました。現在の FSMO の所有者に接続できませんでした。)
)
エラー コードにより、接続、LDAP、または役割の転送エラー
を示すことがあります。
domain naming FSMO の転送に失敗しました。強制処理 (seize) 中です... ……転送処理は失敗したので、強制割り当てを行う
サーバー "w2003dc2.example.co.jp" は 5 個の役割を認識しています ……結果
スキーマ - CN=NTDS Settings,CN=W2003DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp
ドメイン - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp ……DC1からDC2に変更された
PDC - CN=NTDS Settings,CN=W2003DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp
RID - CN=NTDS Settings,CN=W2003DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp
インフラストラクチャ - CN=NTDS Settings,CN=W2003DC1,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp

ドメイン名前付けマスタの強制割り当て直後の画面

 最初に強制処理(seize)ではなく、転送(transfer)を試みるため、既存のFSMOと通信できないというエラーメッセージなどが表示されるが、無視してよい。最後に現在のFSMOの役割を担当しているサーバ名が表示されるので、その内容を確認しておく。

 以下同様に、「seize infrastructure master」「seize pdc」「seize rid master」「seize schema master」も実行して、それぞれの役割を強制的に割り当てる。

fsmo maintenance: seize infrastructure master
……(中略)……
fsmo maintenance: seize pdc
……(中略)……
fsmo maintenance: seize rid master
……(中略)……
fsmo maintenance: seize schema master
……(中略)……
サーバー "w2003dc2.example.co.jp" は 5 個の役割を認識しています
スキーマ - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=exa mple,DC=co,DC=jp
ドメイン - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=exa mple,DC=co,DC=jp
PDC - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example, DC=co,DC=jp
RID - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example, DC=co,DC=jp
インフラストラクチャ - CN=NTDS Settings,CN=W2003DC2,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=example,DC=co,DC=jp
fsmo maintenance:

その他の役割の強制割り当て

 最後の結果を見ると、全てのFSMOの役割が、元のW2003DC1というDCから、W2003DC2というDCへ変更されていることが分かる。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。