Windows Server ドメイン コントローラーは、USN ロールバックが発生したときに Directory Services イベント 2095 をログに記録します
この記事では、オペレーティング システムのイメージ ベースのインストールを使用して、Windows Server ドメイン コントローラーが誤ってロールバックされた場合に検出して回復する方法について説明します。
元の KB 番号: 875495
注:
この記事は、テクニカル サポート エージェントと IT プロフェッショナルのみを対象としています。 問題のヘルプをお探しの場合は、 Microsoft コミュニティにお問い合わせください。
概要
この記事では、更新シーケンス番号 (USN) ロールバックによって発生するサイレント Active Directory レプリケーション エラーについて説明します。 USN ロールバックは、古いバージョンの Active Directory データベースが正しく復元または貼り付けられていない場合に発生します。
USN ロールバックが発生した場合、1 つのドメイン コントローラーで発生するオブジェクトと属性に対する変更は、フォレスト内の他のドメイン コントローラーにレプリケートされません。 レプリケーション パートナーは Active Directory データベースの最新のコピーがあると考えているため、Repadmin.exe などの監視ツールやトラブルシューティング ツールではレプリケーション エラーは報告されません。
ドメイン コントローラーは、USN ロールバックを検出すると、Directory Services イベント ログに Directory Services イベント 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 では、Hyper-Visor 世代 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 を実行しているコンピューター上の単一または複数のボリュームの単一時点シャドウ コピーの作成がサポートされています。 1 つのポイントインタイム シャドウ コピーは、スナップショットとも呼ばれます。 詳細については、 Microsoft サポートの「ボリューム シャドウ コピー サービス」を検索してください。
システムの状態を復元します。 このドメイン コントローラーに対して有効なシステム状態バックアップが存在するかどうかを評価します。 ロールバックされたドメイン コントローラーが正しく復元される前に有効なシステム状態のバックアップが作成され、バックアップにドメイン コントローラーで行われた最近の変更が含まれている場合は、最新のバックアップからシステム状態を復元します。
Active Directory 対応システム状態バックアップを復元するときに発生する一般的な動作
Windows Server ドメイン コントローラーは、呼び出し ID と共に USN を使用して、Active Directory フォレスト内のレプリケーション パートナー間でレプリケートする必要がある更新プログラムを追跡します。
ソース ドメイン コントローラーは、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 を確認した宛先ドメイン コントローラーによってレプリケートされません。
これらの宛先ドメイン コントローラーは最新の状態であると考えられるため、Directory Service イベント ログまたは監視および診断ツールによってレプリケーション エラーは報告されません。
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 では、データベースの初期コピーを作成したのと同じ呼び出し ID と、USN 50 までのすべての変更が引き続き使用されます。 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 にマップされる変更のセットです。
注:
この例では、さまざまなオブジェクト数がユーザー アカウント、コンピューター アカウント、セキュリティ グループに適用されます。 異なるオブジェクト メタデータは、異なるユーザー アカウント パスワードを表します。
手順 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 レプリケーション トポロジとスケジュール
フォレスト内のドメイン コントローラーの存在と、これらのドメイン コントローラーが保持するロール
注:
これらのロールには、グローバル カタログ、相対識別子 (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 内のオブジェクトを更新するときに、正常なドメイン コントローラーを優先します。
ドメイン コントローラーでは、次のようなイベント メッセージは、次の条件に該当する場合に記録されます。
- ソース ドメイン コントローラーは、以前に確認された USN 番号を宛先ドメイン コントローラーに送信します。
- 呼び出し ID に対応する変更はありません。
これらのイベントは、Directory Service イベント ログにキャプチャされる場合があります。 ただし、管理者によって監視される前に上書きされる可能性があります。
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 Domain Services での操作マスター ロールの転送または強制」を参照してください。
降格したサーバーを再起動します。
必要な場合は、もう一度スタンドアロン サーバーに Active Directory をインストールします。
ドメイン コントローラーが以前にグローバル カタログだった場合は、ドメイン コントローラーをグローバル カタログに構成します。 詳細については、「 グローバル カタログを作成または移動する方法」を参照してください。
ドメイン コントローラーが以前に操作マスター ロールをホストしていた場合は、操作マスター ロールをドメイン コントローラーに転送します。 詳細については、「 Active Directory Domain Services での操作マスター ロールの転送または強制」を参照してください。
適切なバックアップのシステム状態を復元します。
このドメイン コントローラーに対して有効なシステム状態バックアップが存在するかどうかを評価します。 ロールバックされたドメイン コントローラーが誤って復元される前に有効なシステム状態バックアップが作成され、バックアップにドメイン コントローラーで行われた最近の変更が含まれている場合は、最新のバックアップからシステム状態を復元します。
システム状態のバックアップなしでシステム状態を復元します。
スナップショットは、バックアップのソースとして使用できます。 または、「Hyper-V でドメイン コントローラーを実行する」の「システム状態データ バックアップなしで以前のバージョンの仮想ドメイン コントローラー VHD を復元するには」セクションの手順を使用して、新しい呼び出し ID を付与するようにデータベースを設定できます。