連載
» 2004年06月19日 05時00分 UPDATE

Tech TIPS:Active DirectoryのFSMO役割のサーバをntdsutil.exeコマンドで調査する(Windowsコマンドプロンプト編)

Active Directory(AD)のドメインコントローラ(DC)には、FSMOと呼ばれる、5つの特別な役割がある。FSMOはドメインごとにどれか1台のDC上でのみ実行される。ADの可用性を高めるためには、FSMOを適切に配置しなければならない。FSMOの役割がどのDC上で実行されているかを確認するためには、ntdsutilやdumpfsmos、netdomといったコマンドが利用できる。

[打越浩幸,デジタルアドバンテージ]
「Tech TIPS」のインデックス

連載目次

対象OS:Windows 2000 Server/Windows Server 2003



解説

Windows Server Insiderの関連記事 運用「FSMOの詳細
TIPS「SIDの詳細

 Active Directoryにおけるドメインコントローラ(以下DC)は、Windows NTのDCと違って、同じドメイン内のDCはすべて同じActive Directoryデータベース情報を共有し、それらは同等な役割を担っている。しかし完全に同等というわけではなく、いくつかの特別な用途(役割)に関しては、特定の1台のコンピュータだけが処理を担当している。この特別な役割のことを「操作マスタ(FSMO:Flexible Single Master Operation)」といい、次の5つがある。

FSMO役割 処理内容
スキーママスタ Active Directoryデータベースのスキーマの変更処理
ドメイン名前付けマスタ フォレストに対するドメインの追加や削除
RIDマスタ ユーザーアカウントなどで利用されるSIDの一部である、RID(Relative ID)の生成
PDCマスタ NTドメインのPDCの役割のエミュレーション
インフラストラクチャマスタ グループアカウントにおけるメンバーの割り当て
FSMOの役割とその内容(概要)

 通常はFSMOの役割は、ドメイン内で最初にインストールしたDCが担当しているが、負荷分散や耐障害性向上などのためにFSMOの構成を変更した場合は、別のDCが担当している場合がある。本TIPSでは、現在どのDCがFSMOの役割を持っているかを、コマンドプロンプト上で調査する方法を解説する。FSMOの役割や配置方法については、以下のサポート技術情報も参考にしていただきたい。

 FSMOの役割を調査後、別のDCに移行させたければ、「転送」か「強制割り当て」を行う。その方法についてはTIPS「Active DirectoryのFSMO役割を他のDCへ転送する(GUI編)」「Active DirectoryのFSMO役割を他のDCへ強制的に割り当てる」を参照していただきたい。

操作方法

●方法1―ntdsutil.exeコマンドを利用する方法

 現在どのDCがFSMOのそれぞれの役割を担っているかを調べる方法としては、MMCの管理コンソールを利用する方法もあるが、コマンドプロンプト上で操作することが多い管理者にとっては、MMCの管理コンソールを利用しない方法も知っておくとよい。一番簡単な方法は、ntdsutil.exeというコマンドを利用する方法である。このコマンドは、FSMOの状態を確認したり、他のマシンへFSMOの役割を移行させたりする他、Active Directoryのデータベースの管理業務などを行う場合に利用する。

 ntdsutil.exeにはいくつかのサブコマンドがあり、慣れないと少々使いにくいと感じるかもしれない。基本的には、まずドメインやドメイン内のサイト、DCなどに接続し、その後さまざまなコマンドを実行する。以下順に、このコマンドの使い方も含めて解説しておこう。

 コマンドプロンプトを開いてntdsutil.exeを実行すると、「ntdsutil:」というトップレベルのプロンプトが表示される。ここでコマンドを入力するわけであるが、「help」もしくは「?」を入力すると現在利用可能なコマンドの一覧が表示されるので(コマンドのモードによって変わる)、確認しておこう。

C:\>ntdsutil …コマンドの起動
ntdsutil: help …ヘルプコマンドの実行

?                             - このヘルプを表示します
Authoritative restore         - DIT データベースを正式に復元します
Configurable Settings         - 構成可能な設定を管理します
Domain management             - 新しいドメインの作成を準備します
Files                         - NTDS データベース ファイルを管理します
…(中略)…
Roles                         - NTDS の役割所有者トークンを管理します
Security account management   - セキュリティ アカウント データベースを管理しま                                  す - 重複した SID のクリーンアップ
Semantic database analysis    - Semantic Checker
Set DSRM Password             - ディレクトリ サービス復元モードの管理者                                         アカウントのパスワードをリセットします


ntdsutil:



 FSMOの役割を実行しているマシンを確認するには、「Roles」というサブコマンドを実行する(FSMOを確認するだけなら、「Roles」ではなく、「Domain management」コマンドでも利用可能)。

ntdsutil: roles …Rolesサブコマンドの実行
fsmo maintenance:



 ここではコマンド名をフルスペルで入力している(大文字/小文字は無視される)、複数単語からなる長いコマンドも多いので、少々わずらわしい。だがフルスペルで入力する代わりに、各単語の先頭の何文字かだけを指定して入力することも可能なので、手動でコマンドを入力する場合は省略して入力するとよいだろう。

ntdsutil: rol …Rolesサブコマンドの省略形
fsmo maintenance:



 プロンプトが「fsmo maintenance:」に変わり、現在のコマンドのモード(「コンテキスト」という)が切り替わったことが分かる。

 FSMOの状態を表示させるには、最初に対象となるドメインもしくはDCに接続する必要がある。このためには「Connections」コマンドを実行し、そのコンテキスト中で、対象となるドメインもしくはDCを指定する(ドメインを指定すると、どれか1つのDCが自動的に選択される)。そして最後にquitを実行すると、コマンドのコンテキストが「fsmo maintenance:」に戻ってくる。

fsmo maintenance: connections …ドメイン/DCへの接続
sserver connections: connect to domain d-advantage.com
\\server1.d-advantage.com に結合しています...
ローカルでログオンしているユーザーの資格情報を使って \\server1.d-advantage.com に接続しました。
server connections: quit …quitでもとのコンテキストへ戻る
fsmo maintenance:



 ドメインへの接続が完了したら、次は「Select operation target」コンテキスト中で「List roles for connected server」を実行すると、現在のFSMOの状態が表示される。そして最後に「quit」を3回入力して、コンテキストから順に抜け、コマンドの実行を終了させる。

fsmo maintenance: select operation target …Selectサブコマンドの実行
select operation target: list roles for connected server …FSMOの表示
サーバー "\\server1.d-advantage.com" は 5 個の役割を認識しています
スキーマ - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
ドメイン - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
PDC - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
RID - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
インフラストラクチャ - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
select operation target: quit …サブコマンドから抜ける
fsmo maintenance: quit
ntdsutil: quit
\\server1.d-advantage.com から切断しています...

C:\>



 この例では、server1というマシンが5つのすべてのFSMOの役割を担っているということが分かる。

●方法2―dumpfsmos.cmdコマンドを利用する方法

  FSMOの役割を確認したいという要求が多いためか、リソースキットにはそのための専用コマンドdumpfsmos.cmdが用意されている。といっても、実際には、先のntdsutil.exeに固定的なパラメータを付けて起動しているだけである。ntdsutil.exeというコマンドは、ネットワークの制御に使われるnetsh.exeと同様に、引数として実行コマンドを与えることができるようになっている。dumpfsmos.cmdコマンドは、この機能を使って作られている。実際には、「Ntdsutil roles Connections "Connect to server <サーバ名>" Quit "select Operation Target" "List roles for connected server" Quit Quit Quit」というコマンドを実行している。

C:\Program Files\Windows Resource Kits\Tools>dumpfsmos d-advantage.com
ntdsutil: roles
fsmo maintenance: Connections
server connections: Connect to server d-advantage.com
d-advantage.com に結合しています...
ローカルでログオンしているユーザーの資格情報を使って d-advantage.com に接続しました。
server connections: Quit
fsmo maintenance: select Operation Target
select operation target: List roles for connected server
サーバー "d-advantage.com" は 5 個の役割を認識しています
スキーマ - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
ドメイン - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
PDC - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
RID - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
インフラストラクチャ - CN=NTDS Settings,CN=SERVER1,CN=Servers,CN=DigitalAdvantage-Headquarters,CN=Sites,CN=Configuration,DC=d-advantage,DC=com
select operation target: Quit
fsmo maintenance: Quit
ntdsutil: Quit
d-advantage.com から切断しています...



●方法3―netdom.exeコマンドを利用する方法

 netdom.exeコマンドは、Active Directoryドメイン関連の管理業務を行うためのコマンドであり、サポートツールの1つとして用意されている。サポートツールとは、インストールCD-ROMの\SUPPORT\TOOLSフォルダに格納されているコマンドのことである。

 netdom.exeコマンドにも多くのサブコマンドがあるが、QUERYを実行すると、現在のFSMOの状態が表示される。コマンドの使い方については、「netdom /?」などで確認していただきたい。

C:\Program Files\Support Tools>netdom query fsmo
Schema owner                server1.d-advantage.com
Domain role owner           server1.d-advantage.com
PDC role                    server1.d-advantage.com
RID pool manager            server1.d-advantage.com
Infrastructure owner        server1.d-advantage.com
The command completed successfully.



●方法4―dcdiag.exeコマンドを利用する方法

 同じくサポートツールに含まれるdcdiag.exeコマンドを利用しても、FSMOの役割を確認することができる。もともとこのコマンドは、ドメインコントローラの診断用プログラムであり、FSMOとは直接関係のないデータも大量に表示される。FSMOの確認を行うためには、「dcdiag /test:knowsofroleholders /v」というコマンドを実行する。

「Tech TIPS」のインデックス

Tech TIPS

Copyright© 1999-2017 Digital Advantage Corp. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

Focus

- PR -

RSSについて

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

メールマガジン登録

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