Active Directory の権限のある復元について

Last Update: feedback 共有

本記事はマイクロソフト社員によって公開されております。

こんにちは。Windows Commercial Support Directory Services チームです。

本記事では、Active Directory データベースに含まれる内容をバックアップを採取した時点に戻すことを目的とした、Active Directory の権限のある復元 (Authoritative Restore) の手順についてご案内します。


Active Directory のバックアップとリストアにあたり理解しておくべきこと


ドメインコントローラーをバックアップからリストアするにあたり、AD 特有のデータとして以下の 2 点が存在すること、それぞれ別々の仕組みで動作 (情報をドメイン コントローラー間で複製) していることを理解することが重要です。

  • AD データベース
    ユーザーやコンピューターなどのオブジェクトに関する情報が含まれるデータベースです。

  • SYSVOL
    グループ ポリシーの設定情報などが含まれるフォルダーです。

リストアを実施するにあたり、権限のない復元 (Non-Authoritative Restore)権限のある復元 (Authoritative Restore) と呼ばれる方法があります。
ややこしいことに、前述のとおり AD データベースと SYSVOL はそれぞれ異なる仕組みで動作しているため、AD データベースと SYSVOL のそれぞれに権限のない復元と権限のある復元が存在します。
つまり、”AD データベースの権限のない復元” と “AD データベースの権限のある復元”、”SYSVOL の権限のない復元”、”SYSVOL の権限のある復元” の 4 通りが存在します。

さらにややこしいことに、同じ “権限のある復元” という呼び名でも、”AD データベースの権限のある復元” を実施する時の目的と、”SYSVOL の権限のある復元” を実施する時の目的は異なります。そのため、この 4 通りの復元方法の動作の違いやそれぞれの目的をしっかり理解することが重要です。

AD データベースの権限のない復元を実施した際の複製動作

AD データベースの権限のない復元を実施した場合、復元後に他の DC と複製を行うと、更新情報が新しい側の情報が採用されます。そのため、復元によってバックアップ取得時点の状態に戻したとしても、他の DC が保持しているより新しい更新情報によって上書きされ、結果として復元前の状態に戻ってしまいます。

以下に具体例を示します。DC01 と DC02 という 2 台の DC が存在しているとします。この時、あるユーザー A の [部署] 属性が “営業” であったとします。この状態で DC02 のバックアップを取得し、その後にユーザー A の [部署] 属性を “技術サポート” に変更したとします。この状態から DC02 をバックアップから復元すると、DC01 上の AD データベースに格納されているユーザー A の [部署] 属性は “技術サポート” になっていますが、DC02 の AD データベースに格納されているユーザー A の [部署] 属性は “営業” に戻ります。その上で DC01 と DC02 が複製を実施すると、DC01 の [部署] 属性が “技術サポート” であるという更新情報の方が新しいため、DC02 の [部署] 属性も “技術サポート” に変更されます。

SYSVOL の権限のない復元を実施した際の複製動作

一方で SYSVOL の複製の場合は、権限のない復元を実施すると、AD データベースの動作とは異なり、一旦自身が持っている情報をすべて破棄し、その他の DC が持っている SYSVOL の内容を複製してきた上で、それを自身の SYSVOL とします。つまり、DC01 と DC02 という 2 台の DC が存在し、DC02 の方を SYSVOL の権限のない復元を実施することを考えると、一旦 DC02 は自身が保持している SYSVOL の内容をすべて破棄し、DC01 の SYSVOL を DC02 の方へコピーしてきて、それを DC02 の SYSVOL とします。

AD データベースの権限のある復元を実施した際の複製動作

AD データベースの権限のある復元は、あるオブジェクトの属性情報をバックアップを取得した時点の状態に戻すことを目的として実施されます。

ここでも前述の [部署] 属性の例を用いて、AD データベースの権限のある復元の動作を説明します。前述の例と同様、あるユーザー A の [部署] 属性が “営業” である状態で DC02 のバックアップを取得します。
その後ユーザー A の [部署] 属性を “技術サポート” に変更した上で、DC02 をバックアップから “AD データベースの権限のある復元” を実施します。AD データベースの権限のある復元を実施する際は、”どのオブジェクトに対して権限のある復元をするのか” を指定しなければならないため、ここではユーザー A のオブジェクトに対して権限のある復元を実施するとします。

すると、ユーザー A の属性のバージョン番号に非常に大きな値が加算されます。こうすることによって、本来であれば DC02 が保持しているユーザー A の情報の方が DC01 よりも古いにも関わらず、DC02 のユーザー A の情報の方が新しいという扱いにすることにより、復元後に DC01 と DC02 が複製すると、DC02 が持つユーザー A の情報で、DC01 の持つユーザー A の情報が上書きされます。
つまり、復元後に DC01 と DC02 が複製しあった後、ユーザー A の [部署] 属性は DC02 のバックアップ取得時点のものである “営業” に戻ります。AD データベースの権限のない復元と異なり、ユーザー A の [部署] 属性がバックアップ取得時点の状態に戻っていることがお分かりいただけると思います。

SYSVOL の権限のある復元を実施した際の複製動作

前述のとおり、SYSVOL で権限のない復元を実施した場合、一旦自身が保持している SYSVOL の内容は破棄する動作となります。一方で、SYSVOL で権限のある復元を実施した場合、自身の SYSVOL を破棄するのではなく、自身が保持する SYSVOL の内容が正として、他の DC と複製を開始するようになります。SYSVOL の権限のある復元を実施した DC が正とする代わりに、その他のすべての DC で SYSVOL の権限のない復元を実施する必要があります。


SYSVOL の権限のある復元手順について


ドメイン コントローラーのバックアップとリストアについて でも記載がある wbadmin start systemstaterecovery 実行時における -authsysvol は SYSVOL の権限のある復元を実施するためのオプションであり、このオプションを付けない場合は SYSVOL の権限のない復元となります。


Active Directory の権限のある復元手順


wbadmin start systemstaterecovery 実行時の -authsysvolSYSVOL に対してのみ「権限のある復元」を行うためのオプションです。
そのため、-authsysvol を付ける場合(SYSVOL の権限のある復元)でも、付けない場合(SYSVOL の権限のない復元)でも、AD データベースの復元としては権限のない復元(Non-Authoritative Restore) になります。

これは、ドメイン コントローラーを 1 台だけバックアップから戻す場合でも、全台をバックアップから戻す場合でも同様です。
(権限のない復元のまま他の DC と複製が行われると、USN/更新番号の関係で「更新情報が新しい側」の内容が採用され、バックアップ時点に戻したつもりの内容が結果的に上書きされます。)

そのため、バックアップ取得時点の内容を Active Directory 上でも正として反映させたい(= 他の DC 側を上書きしたい)場合は、システム状態の復元後に ntdsutil による Active Directory の権限のある復元 を追加で実施する必要があります。

Active Directory データベースに含まれる内容をバックアップを採取した時点に戻すためには、ドメインの 1 台のドメイン コントローラー (DC) で権限のある復元を実行します。

システム状態のリストア

  1. 復元を実施する DC に管理者権限を持つユーザーでサインインします。

  2. [ファイル名を指定して実行] から msconfig を実行します。

  3. [ブート] タブの [セーフ ブート] をオンにします。

  4. [Active Directory 修復] を選択し、[OK] をクリックします。

  5. [再起動] をクリックします。

  6. OS が起動してきたら、ディレクトリ サービス復元モードの Administrator でサインインします。

  7. コマンド プロンプトを起動します。

  8. 以下のコマンドを実行し、対象のバックアップの “バージョン識別子” を確認します。

    1
    wbadmin get versions
  9. 以下のコマンドを実行し、システム状態の復元を実施します。

    1
    wbadmin start systemstaterecovery -version:<バージョン識別子> -quiet
  10. 復元が完了したら、次の “ntdsutil コマンドを使用した権限のある復元” を実施します。

ntdsutil コマンドを使用した権限のある復元

  1. ntdsutil と入力し、Enter を押します。

    1
    ntdsutil
  2. activate instance ntds と入力し、Enter を押します。

    1
    activate instance ntds
  3. authoritative restore と入力し、Enter を押します。

    1
    authoritative restore
  4. list nc crs と入力し、Enter を押します。存在するパーティション一覧が表示されます。

    1
    list nc crs
  5. restore subtree <権限のある復元を実施したいパーティションの DN> と入力し、Enter を押します。

    1
    restore subtree DC=contoso,DC=com

    ※ オブジェクト単位で復元する場合は restore object <オブジェクトの DN 名> を実行します。

  6. “この Authoritative Restore を実行しますか?” と表示されたら、[はい] をクリックします。

  7. その他にも権限のある復元を実施したいパーティションがある場合には、対象のパーティションに対して手順 5 および 6 を実施します。

  8. q と入力して Enter を押すことを 2 回繰り返し、ntdsutil を終了します。

    1
    q
  9. [ファイル名を指定して実行] から msconfig を実行します。

  10. [ブート] タブの [セーフ ブート] をオフにし、[OK] をクリックします。

  11. [再起動] をクリックします。


変更履歴


2026/2/24: 本記事の公開

本情報の内容(添付文書、リンク先などを含む)は、作成日時点でのものであり、予告なく変更される場合があります。