Active Directory レプリケーション エラー 8545: "レプリケーション更新プログラムを適用できませんでした"

この記事では、エラー 8545 で 1 つ以上のパーティションに対して Active Directory レプリケーションが失敗する問題の解決策を示します。

適用対象: Windows Server 2012 R2
元の KB 番号: 3110029

注:

ホーム ユーザー: この記事は、テクニカル サポート エージェントと IT プロフェッショナルのみを対象としています。 問題のヘルプを探している場合は、 Microsoft コミュニティに問い合わせてください

現象

Windows Server 2012と Windows Server 2008 では、Active Directory レプリケーションは 1 つ以上のパーティションに対して失敗し、エラー 8545 が返されます。"レプリケーションの更新プログラムを適用できませんでした。これは、ソースまたは宛先が最近のクロスドメイン移動操作に関する情報をまだ受信していないためです。

さらに、次のエラーは、宛先ドメイン コントローラーのディレクトリ サービス ログに記録されます。

Microsoft-Windows-ActiveDirectory_DomainService イベント ID 1084Internal イベント: Active Directory Domain Servicesは、次のソース ディレクトリ サービスから受け取った変更で次のオブジェクトを更新できませんでした。 これは、ディレクトリ サービスでActive Directory Domain Servicesへの変更の適用中にエラーが発生したためです。

オブジェクト:

CN=<User,OU>=Users,OU=Boards,DC=na,DC=contoso,DC=com
オブジェクト GUID:
33555323-8e42-42dd-ab95-51693b54281f

ソース ディレクトリ サービス:
1126750c-e8ac-4355-8412-ccb287e48c23._msdcs.contoso.com

この更新プログラムの問題が修正されるまで、ディレクトリ サービスとソース ディレクトリ サービスの同期はブロックされます。
この操作は、次回のスケジュールされたレプリケーションで再試行されます。

ユーザー操作
この条件が低いシステム リソース (物理メモリや仮想メモリの不足など) に関連しているように見える場合は、ローカル コンピューターを再起動します。

追加データ
エラー値:
8545 レプリケーション更新プログラムを適用できませんでした。これは、ソースまたは宛先が最近のクロスドメイン移動操作に関する情報をまだ受信していないためです。

注:

イベント ID 1084 で参照される値を適用する方法の詳細については、「詳細情報」セクションの表を参照してください。

原因

この問題は、イベント 1084 に記載されているオブジェクトが同じフォレスト内のドメインから別のドメインに移行された場合に発生します。 宛先ドメイン コントローラーは、オブジェクトの新しい場所 (そのパーティション) を学習しません。 したがって、オブジェクトは、移行先ドメイン コントローラーの古いパーティションにまだ存在します。

ソース ドメイン コントローラーは、オブジェクトの移行を認識し、それをオブジェクトの新しい場所に配置します。

Active Directory レプリケーション エラー 8545 は、移行先ドメイン コントローラーが別のパーティションに存在するオブジェクトを検出したときに、ソース ドメイン コントローラーがこの最近移行したオブジェクトの変更を送信しようとしたときにログに記録されます。

解決方法

予防策として、引き続き Windows Server 2008 または Windows Server 2008 R2 を実行しているすべてのドメイン コントローラーに、 Microsoft サポート技術情報の記事 2682997をインストールすることを検討してください。 これを行うには、次の手順を実行します。

  1. オブジェクトが移行された名前付けコンテキスト (NC) /パーティションの識別名 (DN) を決定します。 この詳細については、「詳細情報」セクションを参照してください。

  2. 宛先ドメイン コントローラーで、次の手順に従って、このパーティションのホストを解除します。

    1. 次のコマンド ラインを実行します。 Repadmin /unhost DestinationDC <DNofObject'sOldLocation>

      たとえば、宛先ドメイン コントローラーが DC1 で、オブジェクトが移行元のパーティションの DN が dc=corp、dc=contoso、dc=com の場合、コマンドは Repadmin /unhost DC1 dc=corp,dc=contoso,dc=com になります。

      注:

      イベント ID 1660 を確認するために、ドメイン コントローラーのディレクトリ サービス ログを監視します。 イベント テキストを確認して、ドメイン コントローラーが CORP NC をホストしなくなったことを確認します。

    2. イベント ID 1659 は、ホスト解除操作の状態を示します。 他のパーティションを正常に同期するまで、パーティションを読み取らないでください。

  3. 移行先ドメイン コントローラーで、ソース ドメイン コントローラー (失敗したドメイン コントローラー) を使用してレプリケーションをトリガーします。

  4. パーティションの有効な読み取り/書き込みコピーがあるドメイン コントローラーからパーティションを再ホストします。 これを行うには、次のコマンド ラインを実行します。

    Repadmin /add DNobObject のOldLocation DestinationDC GoodSourceDC /readonly

    たとえば、宛先ドメイン コントローラーが DC1 であり、ホストされていないパーティションが dc=corp、dc=contoso、dc=com、Corp パーティションの読み取り/書き込みコピーを持つドメイン コントローラーであると CorpDC1.corp.contoso.comします。 この状況では、コマンドは になります Repadmin /add dc=corp,dc=contoso,dc=com dc1 CorpDC1.corp.contoso.com /readonly。 この特定のシナリオの詳細については、「詳細情報」セクションを参照してください。

詳細

前のセクションで説明したシナリオは、混乱を招く可能性があります。 次の表のスタイルを使用して、この問題を解決するために必要なすべてのデータ ポイントを文書化します。

まず、古い場所 (オブジェクトが移行された場所) にオブジェクトのコピーが含まれているのがソース ドメイン コントローラーか宛先ドメイン コントローラーかを判断します。

名前 詳細
オブジェクト DN CN=JUSTINTU,OU=Users,OU=PREDICATE,DC=na,DC=contoso,DC=com
Objectguid 33555323-8e42-42dd-ab95-51693b54281f
親オブジェクト DN OU=Users,OU=PREDICATE,DC=na,DC=contoso,DC=com
古いソース ドメイン (DN) オブジェクトはどのドメインにありましたか?

Dc=corp,dc=contoso,dc=com
ターゲット ドメイン (DN) オブジェクトが移行されたドメインはどれですか?

Dc=na,dc=contoso,dc=com
オブジェクト (レプリケーション メタデータ) を使用してすべての DC を識別する Repadmin /showobjmeta *"<GUID=33555323-8e42-42dd-ab95-51693b54281f>" >JUSTINTUObjmeta.txt

重要:

データの取得に失敗した DC の場合:
1. データを取得しなかった各 DC に接続します。
2. コマンドを再実行し、DC 名をアスタリスクに置き換えます。

例: repadmin /showobjmeta DC004 "<GUID=33555323-8e42-42dd-ab95-51693b54281f>" >LCTXDC004_JUSTINTUObjmeta.txt
オブジェクト (属性値) を使用してすべての DC を識別する Repadmin /showattr *"<GUID=33555323-8e42-42dd-ab95-51693b54281f>" /gc >JUSTINTUattr.txt

重要:

データの取得に失敗した DC の場合:
1. 該当する各 DC に接続します。
2. コマンドを再実行し、DC 名をアスタリスクに置き換えます。

例: repadmin /showobjattr LCTXDC004 "<GUID=33555323-8e42-42dd-ab95-51693b54281f>" /gc >LCTXDC004_JUSTINTUAttr.txt
フォレスト内のすべての DC を識別する Repadmin /viewlist * >allDCs.txt
すべての DC のDSA_GUIDを特定する Repadmin /showattr DCNAME NCOBJ: Config: /filter:"(Objectclass=NTDSDSA)" /atts:objectGUID /subtree >ntdsa.txt

上記の 2 つのコマンド。
NA パーティション名にオブジェクトがないソース ドメインの DC
NA パーティションにオブジェクトがないソース ドメインの DC DSA_GUID
フォレストのレプリケーションの状態 Repadmin /showrepl * /csv >showrepl.csv

データベース内のオブジェクトの現在の場所を識別するには:

  1. いずれかの宛先 DC のデータベースをダンプします。
  2. データベース ダンプ ファイルを開き、イベント 1084 で報告される objectGUID を検索します。
  3. DNT と PDNT を取得し、次のように関連する値をテーブルにコピーして オブジェクト階層を構築 します。
Dnt PDNT Rdn Objectguid
61001 45020 Justintu 33555323-8e42-42dd-ab95-51693b54281f
45020 20005 LostAndFound
6931 1752 株式 会社
1751 20003 Contoso
1750 2 Com

データベース ダンプ ファイルを使用すると、このドメイン コントローラー上のデータベースで、このオブジェクトの現在の場所を確認できます。

CN=LostAndFound,DC=Corp,DC=Contoso,DC=com

オブジェクトが NC の LostAndFound コンテナーに corp.contoso.com 存在していることがわかります。 ただし、NC を除き、このオブジェクトではレプリケーションが NA.contoso.com ブロックされます。 このオブジェクトはデータベースに既に存在するため (ただし、古い NC では正しくありません)、古いオブジェクトを破棄するには、このドメイン コントローラーからこのパーティションを削除する必要があります。

シナリオ アクション プランの例

Configuration オブジェクトは、Corp パーティションから NA パーティションに移行されました。 ただし、NA パーティションは から NADC1.na.contoso.com へのレプリケートに DC1.la.contoso.com失敗し、エラー 8545 が返されます。

宛先 DC: DC1.la.contoso.com

ソース DC: NADC1.na.contoso.com

  1. 予防策として、まだ Windows Server 2008 または Windows Server 2008 R2 を実行しているすべてのドメイン コントローラーに KB 記事の 2682997 をインストールすることを検討してください。 これを行うには、ドメイン コントローラーで Corp パーティションのホストを解除し、NA パーティションをレプリケートしてから、既知の適切なソースから CORP パーティションを読み取る必要があります。 これを行うには、次の手順を実行します。
    1. 次のコマンドを実行して、GC からパーティションのホストを解除します。

      Repadmin /options dc +disable_ntdsconn_xlate

      Repadmin /unhost the DC=corp,dc=contoso,dc=com

    2. イベント ID 1660 を確認するために、ドメイン コントローラーのディレクトリ サービス ログを監視します。 イベント テキストを確認して、ドメイン コントローラーが CORP NC をホストしなくなったことを確認します。

  2. イベント ID 1659 は、ホスト解除操作の状態を示します。 次のように、NA パーティションを同期するまでパーティションを読み取らないでください。
    1. NA パーティションをレプリケートします。 パーティションがデータベースから正常に削除された後: 次のコマンドを実行して、 CORPDC.na.contoso.com レプリケーションを開始します。

      
      Repadmin /replicate the DC1.la.contoso.com NADC1.na.contoso.com DC=na,DC=bayer,DC=cnb
      
    2. 次の repadmin /add コマンドを実行して、CORP NC をこのドメイン コントローラーに読み戻しました。

      Repadmin /add dc=corp,dc=contoso,dc=com DC1.la.contoso.com CorpDC1.corp.contoso.com /readonly 
      
      Repadmin /options the DC -disable_ntdsconn_xlate 
      

データ収集

Microsoft サポートからの支援が必要な場合は、「 Active Directory レプリケーションの問題に TSS を使用して情報を収集する」で説明されている手順に従って情報を収集することをお勧めします。