Windows Server ドメイン コントローラーは、USN ロールバックが発生したときにディレクトリ サービス イベント 2095 をログに記録します
この記事では、オペレーティング システムのイメージ ベースのインストールを使用して、Windows Server ドメイン コントローラーが誤ってロールバックされた場合に検出して回復する方法について説明します。
元の KB 番号: 875495
Note
この記事は、テクニカル サポート 担当者と IT プロフェッショナルのみを対象としています。 問題に関するヘルプをお探しの場合は、microsoft コミュニティ 問い合わせてください。
まとめ
この記事では、更新シーケンス番号 (USN) のロールバックによって発生するサイレント Active Directory レプリケーションエラーについて説明します。 USN ロールバックは、古いバージョンの Active Directory データベースが誤って復元または貼り付けされた場合に発生します。
USN ロールバックが発生した場合、1 つのドメイン コントローラーで発生するオブジェクトと属性に対する変更は、フォレスト内の他のドメイン コントローラーにはレプリケートされません。 レプリケーション パートナーは、Active Directory データベースの最新のコピーがあると考えているため、Repadmin.exeなどの監視ツールとトラブルシューティング ツールはレプリケーション エラーを報告しません。
ドメイン コントローラーは、USN ロールバックを検出すると、ディレクトリ サービス イベント ログにディレクトリ サービス イベント 2095 を記録します。 イベント メッセージのテキストは、回復オプションについて説明するために管理者にこの記事に誘導します。
イベント 2095 ログ エントリの例
Log Name: <Service name> Service
Source: Microsoft-Windows-ActiveDirectory_DomainService
Date: <DateTime>
Event ID: 2095
Task Category: Replication
Level: Error
Keywords: Classic
User: <USER NAME>
Computer: SERVER.contoso.com
Description:
During an Active Directory Domain Services replication request, the local domain controller (DC) identified a remote DC which has received replication data from the local DC using already-acknowledged USN tracking numbers.
Because the remote DC believes it is has a more up-to-date Active Directory Domain Services database than the local DC, the remote DC will not apply future changes to its copy of the Active Directory Domain Services database or replicate them to its direct and transitive replication partners that originate from this local DC.
If not resolved immediately, this scenario will result in inconsistencies in the Active Directory Domain Services databases of this source DC and one or more direct and transitive replication partners. Specifically the consistency of users, computers and trust relationships, their passwords, security groups, security group memberships and other Active Directory Domain Services configuration data may vary, affecting the ability to log on, find objects of interest and perform other critical operations.
To determine if this misconfiguration exists, query this event ID using http://support.microsoft.com or contact your Microsoft product support.
The most probable cause of this situation is the improper restore of Active Directory Domain Services on the local domain controller.
User Actions:
If this situation occurred because of an improper or unintended restore, forcibly demote the DC.
次のトピックでは、Windows Server ベースのドメイン コントローラーで USN ロールバックを検出して回復する方法について説明します。
Windows Server 2012 以降のバージョンを実行しているドメイン コントローラーで Active Directory をバックアップするためのサポートされている方法
Windows Server 2012 では、ハイパーバイザー生成 ID (GenID) のサポートが追加されました。 これにより、仮想ゲストは新しい ID を持つディスク ボリュームを検出し、新しい GenID に応答できます。 Active Directory では、ディレクトリ サービスは、ドメイン コントローラーがバックアップから復元されたかのように反応します。 その後、新しい呼び出し ID が生成されます。 新しい呼び出し ID を使用することで、データベース インスタンスはフォレスト内のレプリケーションを安全に再入力できます。
これは、 仮想化ドメイン コントローラーの展開と構成で説明されているシナリオの 1 つです。
Windows Server 2003 以降のバージョンの Windows Server を実行しているドメイン コントローラーで Active Directory をバックアップするためのサポートされている方法
ドメイン コントローラーのライフ サイクルを通じて、Active Directory データベースのコンテンツを既知の適切な時点に復元 ("ロールバック" する) 必要がある場合があります。 または、Active Directory を含むドメイン コントローラーのホスト オペレーティング システムの要素を既知の適切なポイントにロールバックする必要がある場合があります。
Active Directory のコンテンツをロールバックするために使用できるサポートされているメソッドを次に示します。
Microsoft が提供する API と Microsoft がテストした API を使用する Active Directory 対応のバックアップと復元ユーティリティを使用します。 これらの API は、システム状態のバックアップを権限を持たない、または権限を持って復元します。 復元されるバックアップは、同じオペレーティング システムのインストールと、復元されるのと同じ物理コンピューターまたは仮想コンピューターから作成されている必要があります。
Microsoft ボリューム シャドウ コピー サービス API を使用する Active Directory 対応のバックアップおよび復元ユーティリティを使用します。 これらの API は、ドメイン コントローラーのシステム状態をバックアップおよび復元します。 ボリューム シャドウ コピー サービスは、Windows Server 2003、Windows Server 2008、または Windows Server 2008 R2 を実行しているコンピューター上の単一または複数のボリュームの単一ポイントインタイム シャドウ コピーの作成をサポートしています。 単一のポイントインタイム シャドウ コピーはスナップショットとも呼ばれます。 詳細については、Microsoft サポートで "ボリューム シャドウ コピー サービス" を検索します。
システム状態を復元します。 このドメイン コントローラーに対して有効なシステム状態のバックアップが存在するかどうかを評価します。 ロールバックされたドメイン コントローラーが誤って復元される前に有効なシステム状態バックアップが行われた場合、およびバックアップにドメイン コントローラーで行われた最近の変更が含まれている場合は、最新のバックアップからシステム状態を復元します。
Active Directory 対応のシステム状態バックアップを復元するときに発生する一般的な動作
Windows Server ドメイン コントローラーは、ACTIVE Directory フォレスト内のレプリケーション パートナー間でレプリケートする必要がある更新プログラムを追跡するために、USN と呼び出し ID を使用します。
ソース ドメイン コントローラーは、USN を使用して、変更を要求している移行先ドメイン コントローラーによって既に受信されている変更を特定します。 移行先ドメイン コントローラーでは、USN を使用して、ソース ドメイン コントローラーから要求する必要がある変更を決定します。
呼び出し ID は、特定のドメイン コントローラーで実行されている Active Directory データベースのバージョンまたはインスタンス化を識別します。
Microsoft が設計およびテストした API とメソッドを使用してドメイン コントローラーに Active Directory を復元すると、復元されたドメイン コントローラーで呼び出し ID が正しくリセットされます。 フォレスト内のドメイン コントローラーは、呼び出しのリセットの通知を受け取ります。 したがって、それに応じて高基準値を調整します。
USN ロールバックを引き起こすソフトウェアと手法
次の環境、プログラム、またはサブシステムが使用されている場合、管理者は、ドメイン コントローラーのシステム状態が復元されたときに Microsoft が設計したチェックと検証をバイパスできます。
Norton Ghost などのイメージング プログラムを使用して、Active Directory データベース ファイルが復元 (コピー) された Active Directory ドメイン コントローラーを開始します。
ドメイン コントローラーの以前に保存した仮想ハード ディスク イメージを開始する。 次のシナリオでは、USN ロールバックが発生する可能性があります。
- 仮想ホスティング環境でドメイン コントローラーを昇格させます。
- 仮想ホスティング環境のスナップショットまたは代替バージョンを作成します。
- ドメイン コントローラーで引き続き受信レプリケートと送信レプリケートを実行できるようにします。
- 手順 2 で作成したドメイン コントローラー イメージ ファイルを起動します。
このシナリオの原因となる仮想化ホスティング環境の例としては、Microsoft Virtual PC 2004、Microsoft Virtual Server 2005、EMC VMWARE などがあります。 他の仮想化されたホスティング環境でも、このシナリオが発生する可能性があります。
仮想ホスティング環境でのドメイン コントローラーのサポート条件の詳細については、「 仮想ホスト環境で Active Directory ドメイン コントローラーをホストする場合の考慮事項を参照してください。
以前に保存したオペレーティング システムのイメージを使用して、ディスク サブシステムが読み込まれるボリューム上にある Active Directory ドメイン コントローラーを起動します。Active Directory のシステム状態を復元する必要はありません。
シナリオ A: ボリュームの複数のバージョンを格納するディスク サブシステム上にある Active Directory の複数のコピーを開始する
- ドメイン コントローラーを昇格します。 Ntds.dit ファイルをホストするボリュームの複数のバージョンを格納できるディスク サブシステムで Ntds.dit ファイルを見つけます。
- ディスク サブシステムを使用して、ドメイン コントローラーの Ntds.dit ファイルをホストするボリュームのスナップショットを作成します。
- 手順 1 で作成したボリュームからドメイン コントローラーが Active Directory を読み込むよう続行します。
- 手順 2 で Active Directory データベースが保存したドメイン コントローラーを起動します。
シナリオ B: 壊れたミラー内の他のドライブから Active Directory を開始する
- ドメイン コントローラーを昇格します。 ミラー化されたドライブ上で Ntds.dit ファイルを見つけます。
- ミラーを壊します。
- ミラーの最初のドライブにある Ntds.dit ファイルを使用して、受信レプリケートと送信レプリケートを続行します。
- ミラーの 2 番目のドライブにある Ntds.dit ファイルを使用して、ドメイン コントローラーを起動します。
意図しない場合でも、これらの各シナリオでは、サポートされていない方法によって、ドメイン コントローラーが古いバージョンの Active Directory データベースにロールバックする可能性があります。 Active Directory の内容または Active Directory ドメイン コントローラーのローカル状態をロールバックする唯一の方法は、Active Directory 対応のバックアップと復元ユーティリティを使用して、同じオペレーティング システムのインストールと復元中の同じ物理または仮想コンピューターから作成されたシステム状態のバックアップを復元することです。
Microsoft では、Active Directory ドメイン コントローラーのシステム状態の要素のスナップショットを取得し、そのシステム状態の要素をオペレーティング システム イメージにコピーする他のプロセスはサポートされていません。 管理者が介入しない限り、このようなプロセスによって USN ロールバックが発生します。 この USN ロールバックにより、正しく復元されていないドメイン コントローラーの直接レプリケーション パートナーと推移的レプリケーション パートナーは、Active Directory データベースに一貫性のないオブジェクトが含まれます。
USN ロールバックの影響
USN ロールバックが発生すると、以前 USN が認識されていた送信先ドメイン コントローラーによる、オブジェクトと属性に対する変更の入力方向のレプリケートは実行されません。
これらのレプリケート先ドメイン コントローラーは自身が最新であると考えるため、レプリケーション エラーがディレクトリ サービスのイベント ログに報告されることも、監視および診断ツールによって報告されることもありません。
USN のロールバックは、すべてのパーティション内のすべてのオブジェクトまたは属性のレプリケーションに影響を与える可能性があります。 最も頻繁に観察される副作用は、ロールバック ドメイン コントローラー上に作成されるユーザー アカウントとコンピューター アカウントが、1 つまたは複数のレプリケーション パートナー上に存在しなくなることです。 または、ロールバック ドメイン コントローラー上で発生したパスワードの更新がレプリケーション パートナーに存在しません。
次の手順は、USN ロールバックの原因となる可能性のあるイベントのシーケンスを示しています。 USN ロールバックは、サポートされていないシステム状態の復元を使用して、ドメイン コントローラーのシステム状態が時間内にロールバックされるときに発生します。
管理者は、ドメイン内の 3 つのドメイン コントローラーを昇格させます。 (この例では、ドメイン コントローラーは DC1、DC2、DC2 で、ドメインは Contoso.com)。DC1 と DC2 は、直接レプリケーション パートナーです。 DC2 と DC3 は、直接レプリケーション パートナーでもあります。 DC1 と DC3 は直接レプリケーション パートナーではありませんが、DC2 を介して推移的に元の更新プログラムを受信します。
管理者は、DC1 で USN 1 から 10 に対応する 10 個のユーザー アカウントを作成します。 これらのアカウントはすべて DC2 と DC3 にレプリケートされます。
オペレーティング システムのディスク イメージが DC1 にキャプチャされます。 このイメージには、DC1 上のローカル USN 1 から 10 に対応するオブジェクトのレコードがあります。
Active Directory では、次の変更が行われます。
- 手順 2 で作成した 10 個すべてのユーザー アカウントのパスワードは、DC1 でリセットされます。 これらのパスワードは、USN 11 から 20 に対応します。 更新された 10 個のパスワードはすべて DC2 と DC3 にレプリケートされます。
- DC1 には、USN 21 から 30 に対応する 10 個の新しいユーザー アカウントが作成されます。 これらの 10 個のユーザー アカウントは DC2 と DC3 にレプリケートされます。
- DC1 には、USN 31 から 40 に対応する 10 個の新しいコンピューター アカウントが作成されます。 これらの 10 個のコンピューター アカウントは DC2 と DC3 にレプリケートされます。
- DC1 には、USN 41 から 50 に対応する 10 個の新しいセキュリティ グループが作成されます。 これらの 10 個のセキュリティ グループは DC2 と DC3 にレプリケートされます。
DC1 では、ハードウェア障害またはソフトウェア障害が発生します。 管理者は、ディスク イメージング ユーティリティを使用して、手順 3 で作成したオペレーティング システム イメージを適切な場所にコピーします。 DC1 は、USN 1 から 10 に関する知識を持つ Active Directory データベースで始まります。
オペレーティング システム イメージが所定の場所にコピーされ、サポートされているシステム状態の復元方法が使用されていなかったため、DC1 では、データベースの初期コピーと USN 50 までのすべての変更を作成したのと同じ呼び出し ID が引き続き使用されます。 DC2 と DC3 では、DC1 の呼び出し ID も同じであり、DC1 の場合は USN 50 の 最新のベクトル も保持されます。 (最新のベクターは、特定のディレクトリ パーティションのすべてのドメイン コントローラーで発生する最新の更新プログラムの現在の状態です)。
管理者が介入しない限り、DC2 と DC3 は、DC1 から生成されたローカル USN 11 から 50 に対応する変更をインバウンドでレプリケートしません。 また、DC2 が使用する呼び出し ID に従って、DC1 には USN 11 から 50 に対応する変更に関する知識が既にあります。 そのため、DC2 はこれらの変更を送信しません。 手順 4 の変更は DC1 に存在しないため、ログオン要求は "アクセス拒否" エラーで失敗します。 このエラーは、パスワードが一致しないか、新しいアカウントが DC1 でランダムに認証されるときにアカウントが存在しないために発生します。
フォレスト内のレプリケーションの正常性を監視する管理者は、次の状況に注意してください。
Repadmin /showreps
コマンド ライン ツールは、DC1 と DC2 の間と DC2 と DC3 の間の双方向 Active Directory レプリケーションがエラーなしで発生していることを報告します。 この状況により、レプリケーションの不整合を検出するのが困難になります。Windows Server を実行しているドメイン コントローラーのディレクトリ サービス イベント ログ内のレプリケーション イベントは、ディレクトリ サービス イベント ログのレプリケーションエラーを示しません。 この状況により、レプリケーションの不整合を検出するのが困難になります。
Active Directory ユーザーとコンピューターまたは Active Directory 管理ツール (Ldp.exe) では、DC2 と DC3 のドメイン ディレクトリ パーティションが DC1 上のパーティションと比較される場合、オブジェクトの数とオブジェクト メタデータが異なります。 違いは、手順 4 で USN の変更 11 から 50 にマップされる一連の変更です。
Note
この例では、さまざまなオブジェクト数がユーザー アカウント、コンピューター アカウント、およびセキュリティ グループに適用されます。 異なるオブジェクト メタデータは、異なるユーザー アカウント パスワードを表します。
手順 2 で作成された 10 個のユーザー アカウントに対するユーザー認証要求では、"アクセスが拒否されました" または "正しくないパスワード" エラーが生成される場合があります。 このエラーは、DC1 上のこれらのユーザー アカウントと DC2 と DC3 のアカウントの間にパスワードの不一致が存在するため発生する可能性があります。 この問題が発生したユーザー アカウントは、手順 4 で作成したユーザー アカウントに対応します。 手順 4 のユーザー アカウントとパスワードのリセットは、ドメイン内の他のドメイン コントローラーにレプリケートされませんでした。
DC2 と DC3 は、DC1 から 50 を超える USN 番号に対応する発信更新プログラムの受信レプリケートを開始します。 このレプリケーションは、以前に記録された最新のベクターしきい値 USN 50 を超えたため、管理上の介入なしで正常に進行します。 (USN 50 は、DC1 がオフラインになり復元される前に DC2 および DC3 の DC1 用に記録された最新のベクトル USN でした)。ただし、サポートされていない復元後に、元の DC1 で USN 11 から 50 に対応する新しい変更は、DC2、DC3、またはその推移的なレプリケーション パートナーにはレプリケートされません。
手順 6 で説明した現象は、ユーザーアカウントとコンピューター アカウントに対して USN ロールバックが与える可能性のある影響の一部を表していますが、USN ロールバックでは、Active Directory パーティション内のオブジェクトの種類がレプリケートされないようにすることができます。 これらのオブジェクトには次の種類があります。
Active Directory レプリケーション トポロジとスケジュール
フォレスト内のドメイン コントローラーの存在と、これらのドメイン コントローラーによって保持される役割
Note
これらのロールには、グローバル カタログ、相対識別子 (RID) の割り当て、および操作マスター ロールが含まれます。 (操作マスター ロールは、柔軟な単一マスター操作または FSMO とも呼ばれます)。
フォレスト内のドメインおよびアプリケーション パーティションの存在
セキュリティ グループとその現在のグループ メンバーシップの存在
Active Directory 統合 DNS ゾーン内での DNS レコードの登録
USN ホールのサイズは、ユーザー、コンピューター、信頼、パスワード、およびセキュリティ グループに対する何百、何千、何万もの変更を表している可能性があります。 (USN ホールは、復元されたシステム状態のバックアップが行われたときに存在した最大 USN 番号と、オフラインになる前にロールバック ドメイン コントローラーで作成された元の変更の数の差によって定義されます)。
Windows Server ドメイン コントローラーで USN ロールバックを検出する
USN ロールバックは検出が困難であるため、Windows Server 2003 SP1 以降のバージョンのドメイン コントローラーでは、ソース ドメイン コントローラーが呼び出し ID に対応する変更を加えずに、以前に確認された USN 番号を宛先ドメイン コントローラーに送信すると、イベント 2095 がログに記録されます。
正しく復元されていないドメイン コントローラー上で Active Directory に対する一意の更新が発生するのを防ぐために、Net Logon サービスが一時停止されます。 Net Logon サービスが一時停止されている場合、ユーザー アカウントとコンピューター アカウントは、このような変更を送信レプリケートしないドメイン コントローラーのパスワードを変更できません。 同様に、Active Directory 管理ツールでは、Active Directory 内のオブジェクトを更新するときに、正常なドメイン コントローラーが優先されます。
ドメイン コントローラー上では、以下の条件が満たされた場合に次のようなイベント メッセージが記録されます。
- A source domain controller sends a previously acknowledged USN number to a destination domain controller. (ソース ドメイン コントローラーが、事前に確認された USN 番号を宛先ドメイン コントローラーに送信します。)
- There is no corresponding change in the invocation ID. (呼び出し ID 内に対応する変更がありません。)
これらのイベントは、ディレクトリ サービスのイベント ログ内でキャプチャできます。 ただし、管理者によって確認される前に上書きされる可能性があります。
USN ロールバックが発生した可能性があります。 ただし、ディレクトリ サービスのイベント ログに関連するイベントは表示されません。 このシナリオでは、Dsa Not Writable レジストリ エントリを確認します。 このエントリは、USN ロールバックが発生したことを示す証拠を提供します。
- レジストリ サブキー:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NTDS\Parameters
- レジストリ エントリ: Dsa Not Writable
- 値: 0x4
Dsa Not Writable レジストリ エントリ値を削除または手動で変更すると、ロールバック ドメイン コントローラーは完全にサポートされていない状態になります。 そのため、このような変更はサポートされていません。 具体的には、値を変更すると、USN ロールバック検出コードによって追加された検疫動作が削除されます。 ロールバック ドメイン コントローラー上の Active Directory パーティションは、同じ Active Directory フォレスト内の直接および推移的なレプリケーション パートナーと完全に一貫性がなくなります。
USN ロールバックからの復旧
USN ロールバックから復旧するには、3 つの方法があります。
ドメインからドメイン コントローラーを削除します。 これを行うには、次の手順を実行します。
Active Directory をドメイン コントローラーから削除して、スタンドアロン サーバーに強制します。 詳細については、「 Active Directory インストール ウィザードを使用して降格を強制する場合、ドメイン コントローラーが正常に降格しないを参照してください。
降格されたサーバーをシャット ダウンします。
正常なドメイン コントローラーで、降格されたドメイン コントローラーのメタデータをクリーン アップします。 詳細については、「コントローラー サーバーのメタデータActive Directory ドメインクリーンアップする」を参照してください。
不適切に復元されたドメイン コントローラーが操作マスターの役割をホストする場合は、これらの役割を正常なドメイン コントローラーに移行します。 詳細については、「 Active Directory ドメイン サービスでの操作マスターロールの転送または強制」を参照してください。
降格されたサーバーを再起動します。
必要がある場合は、スタンドアロン サーバーに Active Directory を再度インストールします。
ドメイン コントローラーが以前はグローバル カタログであった場合は、ドメイン コントローラーをグローバル カタログとして構成します。 詳細については、「 グローバル カタログを作成または移動する方法を参照してください。
ドメイン コントローラーが操作マスターの役割をホストしていた場合は、ドメイン コントローラーに操作マスターの役割を移行して戻します。 詳細については、「 Active Directory ドメイン サービスでの操作マスターロールの転送または強制」を参照してください。
適切なバックアップのシステム状態を復元します。
このドメイン コントローラーに対して有効なシステム状態のバックアップが存在するかどうかを評価します。 ロールバックされるドメイン コントローラーが不適切に復元される前に有効なシステム状態のバックアップが作成され、そのバックアップにドメイン コントローラーで実行された最近の変更が含まれている場合は、最新のバックアップからシステムの状態を復元します。
システム状態のバックアップなしでシステム状態を復元します。
スナップショットはバックアップのソースとして使用できます。 または、「 Hyper- V でドメイン コントローラーを実行する」の「システム状態データをバックアップせずに以前のバージョンの仮想ドメイン コントローラー VHD を復元するには Hyper-V でドメイン コントローラーを実行する」セクションの手順を使用して、新しい呼び出し ID を付与するようにデータベースを設定することもできます。