Windows Server
 Computer >> コンピューター >  >> システム >> Windows Server

Active DirectoryのFSMO役割とは?FSMOロールの確認・転送・強制取得(Seize)手順を徹底解説

本記事では、Active Directory環境においてFSMO役割(FSMOロール)を保持しているドメインコントローラー(DC)を特定する方法、1つまたは複数のFSMO役割を別の(追加・セカンダリ)ドメインコントローラーへ転送する方法、そしてFSMO役割を保持していたDCが障害を起こした場合に役割を強制取得(Seize)する方法について詳しく解説します。

Active DirectoryドメインにおけるFSMO役割の基礎知識

FSMO(Flexible Single Master Operation:柔軟な単一マスター操作)役割とは、Active Directoryドメインにおいてどのような役割を果たすのでしょうか?

Active Directoryでは、ユーザーアカウントやセキュリティグループの作成、コンピューターのドメイン参加といった標準的な操作は、どのドメインコントローラー上でも実行できます。これらの変更内容は、ADレプリケーションサービスによってディレクトリ全体に伝播されます。複数のDCで同時にユーザーアカウントの名前変更が行われた場合などの競合は、「最後に書き込んだものが優先される」というシンプルな原則で解決されます。

しかし、子ドメインやフォレストの新規作成、ADスキーマの変更など、競合が許されない操作も存在します。こうした一意性が求められる操作を実行するには、FSMO役割を持つドメインコントローラーが必要です。FSMO役割の主な目的は、このような競合の発生を未然に防ぐことです。

Active Directoryフォレストには5つのFSMO役割が存在します。

フォレスト全体で一意となる2つの役割

  1. スキーママスター(Schema Master):Active Directoryスキーマへの変更を担います。例えば、adprep /forestprepコマンドによるスキーマ拡張時などに使用されます。
  2. ドメイン命名マスター(Domain Naming Master):ADフォレスト内に作成されるすべてのドメインおよびアプリケーションパーティションに対して、一意の名前を保証します。管理には「Enterprise Admins」権限が必要です。

各ドメインごとに存在する3つの役割

以下の3つの役割は各ドメインごとに存在し、管理にはアカウントが「Domain Admins」グループのメンバーである必要があります。

  1. PDCエミュレーター(PDC Emulator):Windowsネットワークの主要ブラウザー(ネットワーク環境に表示されるコンピューターの一覧を管理するDomain Master Browser)として機能します。パスワード誤入力によるユーザーのロックアウトを追跡し、ドメイン内の主要NTPサーバーとしても動作します。さらに、Windows 2000/NTクライアントとの互換性維持や、DFSルートサーバーによる名前空間情報の更新にも利用されます。
  2. インフラストラクチャマスター(Infrastructure Master):ドメイン間のオブジェクト参照の更新を担当します。adprep /domainprepコマンドもこのサーバー上で実行されます。
  3. RIDマスター(RID Master):他のドメインコントローラーへRID(Relative Identifier)を500個単位のプールとして配布し、オブジェクトの一意な識別子(SID)の生成を可能にします。

FSMO役割の所有者(ホルダー)を確認する方法

自分のActive Directoryドメインで、どのドメインコントローラーがFSMO役割を保持しているかを調べるにはどうすればよいでしょうか?

ドメイン内のすべてのFSMO役割所有者を確認するには、次のコマンドを実行します。

netdom query fsmo

Schema master dc01.test.com
Domain naming master dc01.test.com
PDC dc01.test.com
RID pool manager dc01.test.com
Infrastructure master dc01.test.com

他のドメインのFSMO役割を確認することもできます。

netdom query fsmo /domain:woshub.com

上記の例では、すべてのFSMO役割がDC01上に配置されています。新しいADフォレスト(ドメイン)を構築した際は、すべてのFSMO役割が最初のDCに集約されます。RODC(読み取り専用ドメインコントローラー)以外であれば、任意のDCが任意のFSMO役割を保持できます。したがって、ドメイン管理者はFSMO役割を他のドメインコントローラーへ自由に移行できます。

PowerShellを使用してFSMO役割の情報を取得することも可能です(Get-ADDomainController コマンドレットの利用には、RSATの「Active Directory PowerShell モジュール」が必要です)。

Get-ADDomainController -Filter * | Select-Object Name, Domain, Forest, OperationMasterRoles |Where-Object {$_.OperationMasterRoles}

フォレストレベルおよびドメインレベルのFSMO役割は、次のコマンドでも確認できます。

Get-ADDomain | Select-Object InfrastructureMaster, RIDMaster, PDCEmulator
Get-ADForest | Select-Object DomainNamingMaster, SchemaMaster

Microsoft推奨のFSMO役割配置ガイドライン

  • フォレストレベルの役割(スキーママスターとドメイン命名マスター)は、グローバルカタログ(GC)サーバーを兼ねるフォレストルートドメインのDCに配置します。
  • ドメインレベルの3つのFSMO役割は、十分なパフォーマンスを持つ1台のDCにまとめて配置します。
  • フォレスト内のすべてのDCをグローバルカタログサーバーにすると、ADの信頼性とパフォーマンスが向上します。その場合、インフラストラクチャマスターの役割は実質的に不要になります。GCを持たないDCが存在する場合は、そのDCにインフラストラクチャマスターを配置してください。
  • FSMO役割を保持するDCには、他の負荷の高いタスクを割り当てないようにしましょう。

FSMO役割の移行は、GUIのMMCスナップイン、ntdsutil.exe、またはPowerShellという複数の方法で実施できます。FSMO役割の転送が必要になるのは、ADインフラストラクチャの最適化を行う場合や、FSMO役割を保持するDCに深刻なハードウェア・ソフトウェア障害が発生した場合です。移行方法には大きく分けて2種類あります。両方のDCが稼働している状態での転送(Transfer)と、役割保持DCがダウンしている場合の強制取得(Seize)です。

PowerShellでFSMO役割を転送する方法

ドメイン内のFSMO役割を最も簡単かつ迅速に転送する方法は、Move-ADDirectoryServerOperationMasterRole コマンドレットを使うことです。

このコマンドレットでは、指定したDCに対して1つ以上のFSMO役割を同時に転送できます。次のコマンドは、2つの役割をDC02へ移動させる例です。

Move-ADDirectoryServerOperationMasterRole -Identity dc02 -OperationMasterRole PDCEmulator, RIDMaster

OperationMasterRole パラメーターには、FSMO役割の名前または下表の番号(インデックス)を指定できます。

PDCEmulator0
RIDMaster1
InfrastructureMaster2
SchemaMaster3
DomainNamingMaster4

先ほどのコマンドは、番号指定を使うと次のように簡潔に書けます。

Move-ADDirectoryServerOperationMasterRole -Identity dc02 -OperationMasterRole 0,1

追加のドメインコントローラーへ5つのFSMO役割をすべて一度に転送するには、次のコマンドを実行します。

Move-ADDirectoryServerOperationMasterRole -Identity dc02 -OperationMasterRole 0,1,2,3,4

Active Directory管理ツール(GUI)でFSMO役割を転送する方法

標準のActive Directoryグラフィカルスナップインを使用してもFSMO役割を移動できます。転送操作は原則として、FSMO役割を保持しているDC上で実行するのが望ましいでしょう。対象サーバーのローカルコンソールにアクセスできない場合は、MMCスナップインの「ドメインコントローラーの変更」オプションから目的のDCを選択してください。

RIDマスター・PDCエミュレーター・インフラストラクチャマスターの転送方法

ドメインレベルの役割(RID、PDC、Infrastructure Master)を転送するには、「Active Directory ユーザーとコンピューター」(DSA.msc)コンソールを使用します。

  1. 「Active Directory ユーザーとコンピューター」(ADUC)スナップインを開きます。
  2. ドメイン名を右クリックし、「操作マスター」を選択します。
  3. 3つのタブ(RID、PDC、インフラストラクチャ)が表示されたウィンドウが開きます。該当するタブから新しいFSMO所有者を指定し、「変更」ボタンをクリックして役割を転送します。

スキーママスターの転送方法

フォレストレベルのFSMOであるスキーママスターの転送には、「Active Directory スキーマ」スナップインを使用します。

  1. スナップインを使用する前に、コマンドプロンプトで regsvr32 schmmgmt.dll を実行してschmmgmt.dllライブラリを登録しておく必要があります。
  2. コマンドプロンプトで「MMC」と入力し、MMCコンソールを開きます。
  3. メニューから「ファイル」→「スナップインの追加と削除」を選択し、「Active Directory スキーマ」コンソールを追加します。
  4. コンソールルート(Active Directory スキーマ)を右クリックし、「操作マスター」を選択します。
  5. スキーママスター役割の転送先となるドメインコントローラー名を入力し、「変更」→「OK」をクリックします。「変更」ボタンがグレーアウトしている場合は、アカウントが「Schema Admins」グループのメンバーであることを確認してください。

ドメイン命名マスターの転送方法

  1. ドメイン命名マスターFSMO役割を転送するには、「Active Directory ドメインと信頼関係」コンソールを開きます。
  2. ドメイン名を右クリックし、「操作マスター」を選択します。
  3. 「変更」をクリックし、ドメインコントローラー名を入力して「OK」を押します。

Ntdsutil.exeを使ったコマンドラインでのFSMO役割転送

注意: ntdsutil.exeは強力なツールです。操作内容を十分に理解せずに使用すると、Active Directoryドメインを破損させる恐れがあるため、慎重に実行してください。

  1. ドメインコントローラー上でコマンドプロンプトを起動し、ntdsutil を実行します。
  2. 続けて roles と入力します。
  3. 次に connections と入力します。
  4. FSMO役割の転送先となるDCに接続します。接続には connect to server <サーバー名> と入力します。
  5. q を入力してEnterキーを押し、接続メニューを抜けます。
  6. FSMO役割を転送するには、transfer <役割> コマンドを使用します。<役割>には転送したい役割を指定します。例:transfer schema mastertransfer rid master など。
  7. FSMO役割の転送を確認するプロンプトが表示されたら、承認します。
  8. 完了したら、q を入力してEnterキーを押し、ntdsutil.exeを終了します。
  9. ドメインコントローラーを再起動します。

FSMO役割の強制取得(Seize)

FSMO役割を保持するDCが故障し(復旧不可能)、または長期間利用できない状況になった場合、その役割を強制的に引き継ぐことができます。ただし、強制取得を行う前に必ず確認すべき重要な点があります。役割を奪われた旧サーバーが二度とネットワークに接続されないようにしなければなりません。さもないと、ADに深刻な問題が発生します(バックアップからDCを後日復元する場合でも同じです)。障害が発生したDCをドメインに戻したい場合は、唯一の正しい方法として、まずADからそのコンピューターアカウントを削除し、新しいホスト名でWindowsをクリーンインストールし、AD DS役割をインストールして、改めてドメインコントローラーとして昇格させます。

FSMO役割の強制取得は、PowerShellまたはNTDSUtilを使用して行えます。

最も簡単なのはPowerShellによる方法です。同じMove-ADDirectoryServerOperationRole コマンドレットを使用しますが、ここに-Force パラメーターを追加します。

例えば、PDCEmulator役割を強制取得してDC02へ移すには、次のコマンドを実行します。

Move-ADDirectoryServerOperationMasterRole -Identity DC02 -OperationMasterRole PDCEmulator -Force

ntdsutil.exeを使用してDC02へFSMO役割を強制取得することも可能です。手順は通常の転送とほぼ同じですが、transfer の代わりに seize コマンドを使用します。

ntdsutil
roles
connections

connect to server DC02(役割の受け取り先サーバー)
quit

各FSMO役割を強制取得するには、次のコマンドを使用します。

seize schema master
seize naming master
seize rid master
seize pdc
seize infrastructure master
quit

  1. 「Active Directory ドメインコントローラーに接続できません」エラーの解決方法

    Windowsワークステーションをドメインに参加させようとした際、「An Active Directory Domain Controller for the domain could not be contacted(ドメインのActive Directoryドメインコントローラーに接続できませんでした)」というエラーメッセージが表示されて困った経験はありませんか? この問題は、新しいWindowsワークステーションをドメインに追加しようとする場面で発生することが多く、その原因は主に以下の2つに分類できます。 DNSの構成ミス: 最も一般的な原因です。幸い、設定を見直すことで簡単に解決でき

  2. Google Apps(G Suite)で取得したドメインを別のホスティングに移行する方法

    G Suite(旧Google Apps)で独自ドメインを取得したものの、ウェブサイト自体はGoogle Sites以外の別のホスティング事業者で運用したい——そんな場合には、ドメインのDNS設定を変更して、新しいホストへ接続先を切り替える必要があります。この記事では、Googleドメインのウェブサイトを別のホストへリダイレクト(移行)させる具体的な手順を、初心者の方にもわかりやすく解説します。 移行前に知っておきたい注意点:MXレコードについて ドメインをGoogle Sites以外のホストへ向ける場合でも、引き続きG SuiteのGmailをメールサービスとして使い続けたいケースは多いはず