Active DirectoryのFSMO役割をほかのDCへ強制的に割り当てる【Windows OS】:Tech TIPS
Active Directoryのドメインコントローラ(DC)には、FSMOと呼ばれる5つの特別な役割がある。FSMOはドメインごとにどれか1台のDC上でのみ実行される。サーバのリプレースや障害などにより、FSMOの役割をほかのDC上に移行/転送させたいことがある。転送元のDCがダウンしている場合は、ntdsutilコマンドで強制的に役割を割り当てる。
対象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提供の技術情報などを参考にして、事前の準備や移行後の確認などを行っていただきたい。
- Active Directory Domain Servicesで FSMO 役割を譲渡または強制移行する(Microsoft Learn)
- Active Directory ドメイン コントローラーでの FSMO の配置と最適化(Microsoft Learn)
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サブコマンドの終了
ここでは、元のFSMOのDCを「w2003dc1」、新しいDCを「w2003dc2」としている。また入力すべきコマンドなどの文字列には、黄色のマーカーを引いている。以下も同様。
手順その2――seizeコマンドで強制的に役割を割り当てる
DCに接続したら、「seize <役割>」コマンドで5つの役割を強制定期に割り当てる。<役割>にはFSMOの役割の名前を指定する。例えば「seize domain naming master」とすればドメイン名前付けマスタを強制的に割り当てることができる。詳しいコマンド名は「?」でヘルプを表示させると確認できる。なお、seizeではなく「transfer <役割>」コマンドを使うと、強制割り当てではなく、役割を「転送」できる。
fsmo maintenance: seize domain naming master ……強制割り当て
このコマンドを実行すると確認のためのダイアログが表示されるので、[はい]ボタンをクリックして先へ進める。
[はい]ボタンをクリックすると、処理が行われる。
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へ変更されていることが分かる。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.