この記事は、Active Directory レプリケーション イベント ID 2042 のトラブルシューティングに役立ちます。
適用対象: サポートされているバージョンの Windows Server
元の KB 番号: 4469622
現象
ドメイン コントローラーが廃棄石の有効期間よりも長くパートナーとレプリケートされていない場合は、一方または両方のドメイン コントローラーに残留オブジェクトの問題が存在する可能性があります。 Active Directory フォレストの廃棄石の有効期間によって、削除されたオブジェクト ("tombstone" と呼ばれます) が Active Directory ドメイン Services (AD DS) に保持される期間が決まります。 tombstone の有効期間は、構成ディレクトリ パーティションのディレクトリ サービス オブジェクトの tombstoneLifetime 属性の値によって決まります。
イベント ID 2042 がログに記録される条件が発生すると、移行元パートナーとの受信レプリケーションが宛先ドメイン コントローラーで停止され、イベント ID 2042 がディレクトリ サービス イベント ログに記録されます。 このイベントは、ソース ドメイン コントローラーと、古いドメイン コントローラーを削除するか、残留オブジェクトを削除してソース ドメイン コントローラーからレプリケーションを復元するために実行する適切な手順を識別します。
イベント テキストの例を次に示します。
ログ名: ディレクトリ サービス
ソース: Microsoft-Windows-ActiveDirectory_DomainService
日付: <Time>
イベント ID: 2042
タスク カテゴリ: レプリケーション
レベル: エラー
キーワード: クラシック
ユーザー: 匿名ログオン
コンピューター: <ドメイン コントローラーのホスト名>
説明:
このマシンが最後に名前付きソース マシンでレプリケートされてから長すぎます。 このソースとのレプリケーション間の時間が廃棄石の有効期間を超えました。 レプリケーションはこのソースで停止されました。
レプリケーションを続行できない理由は、削除されたオブジェクトに対する 2 台のマシンのビューが異なる可能性があるためです。 ソース マシンには、このマシン上で削除 (およびガベージ コレクション) されたオブジェクトのコピーが残っている可能性があります。 レプリケートが許可されている場合、ソース マシンは既に削除されているオブジェクトを返す可能性があります。
レプリケーションが最後に成功した時刻:
<date><time>
ソースの呼び出し ID:
<呼び出し ID>
ソースの名前:
<GUID>._msdcs.<ドメイン>
Tombstone の有効期間 (日数): <TSL の日数>レプリケーション操作が失敗しました。
ユーザーの操作:
フォレストから切断された 2 台のマシンのうち、最新ではないマシンを特定します。 次の 3 つのオプションがあります。
- 切断されたマシンを降格または再インストールします。
- "repadmin /removelingeringobjects" ツールを使用して、一貫性のない削除されたオブジェクトを削除してから、レプリケーションを再開します。
- レプリケーションを再開します。 一貫性のない削除されたオブジェクトが発生する可能性があります。
次のレジストリ キーを使用して、レプリケーションを続行できます。
システムが 1 回レプリケートされたら、キーを削除して保護を再開することをお勧めします。
レジストリ キー:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\Allow Replication With Divergent and Corrupt Partner
repadmin /showrepl
コマンドは、次の例に示すように、エラー 8416 も報告します。
ソース: Default-First-Site-Name\DC1
<><date><time 以降の連続するエラー数>
最後のエラー: 8614 (0x21a6):
Active Directory ドメイン サービスは、このサーバーとの最後のレプリケーションからの時間が廃棄石の有効期間を超えたため、このサーバーでレプリケートできません。
原因
イベント ID 2042 のログ記録には、次のような原因が考えられます。
- レプリケーションエラーの原因となるソフトウェアの問題が発生しているドメイン コントローラー。
- 構成された廃棄石の有効期間の値よりも長く存在していたレプリケーション エラー。
- システム時間の短縮またはロールバックにより、すべてのドメイン コントローラーではなく一部のドメイン コントローラーでオブジェクトが削除されます。
解決方法
この問題の解決は、問題の実際の原因または原因によって異なります。 この問題を解決するには、次の各条件を確認します。
フォレストの廃棄石の有効期間を超えるレプリケーションエラーが発生しているかどうかを確認します。 通常、フォレストの廃棄石の有効期間は既定で 60 ~ 180 日です。 イベント メッセージは、現在構成されているフォレストの廃棄石の有効期間を示します。
コマンド
repadmin /showrepl
を実行して、レプリケーションの問題が存在するかどうかを確認します。 レプリケーションの問題が発生している可能性がある場合は、「 Repadmin を使用した Active Directory レプリケーションの監視とトラブルシューティング 問題を解決する方法について説明します。残留オブジェクトがあるかどうかを判断します。
残留オブジェクトを検出して削除するには、 Lingering Object Liquidator v2 (LoLv2)を使用することをお勧めします。 LoLv2 を使用できない場合は、 Repadmin.exeを使用できます。
LoLv2 の詳細については、以下を参照してください。
これを行うには、次の手順で説明するように、アドバイザリ モードでコマンド
repadmin /removelingeringobjects
を実行します。
最初に、権限のあるドメイン コントローラーを識別する必要があります。 特定のドメイン コントローラーに最新の変更があることがわかっている場合は、そのドメイン コントローラーを権限のあるドメイン コントローラーとして使用できます。 それ以外の場合は、最新の変更があると思われるドメイン コントローラーを特定するまで、複数のドメイン コントローラーで次の手順を完了する必要があります。 その後、そのドメイン コントローラーを権限のあるドメイン コントローラーとして使用できます。
この手順を完了するには、少なくとも、Domain Admins グループ、またはそれと同等の権限を持つグループのメンバである必要があります。 既定のグループ メンバーシップの詳細については、「 Active Directory のローカル グループとドメインの既定のグループで確認します。
残留オブジェクトを識別する
最新の変更が必要なドメイン コントローラーで、管理者特権のコマンド プロンプト ウィンドウを開きます。 コマンド プロンプト ウィンドウを管理者特権で開くには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[アクセサリ] をクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行] をクリックします。
アドバイザリ モードで次の repadmin コマンドを実行します。 これにより、実際に何も削除することなく、残留オブジェクトを評価できます。
repadmin /removelingeringobjects <DestDCName> <SourceDCGUID> <LDAPPartition> /advisory_mode
コマンド構文のプレースホルダーには、次の項目を置き換えます。
DestDCName: 残留オブジェクトのクリーンアップを対象とするドメイン コントローラーのホスト名。 たとえば、contoso.com ドメインの DC1 から残留オブジェクトを削除する場合は、<DestDCName> の
dc1.contoso.com
に置き換えます。SourceDCGUID: 次のコマンドを実行します。
repadmin /showrepl AuthDCname |more
ここで、AuthDCname は、権限のあるドメイン コントローラーとして選択したドメイン コントローラーのホスト名です。 <SourceDCGUID> に表示される最初の DSA オブジェクト GUID に置き換えます。
LDAPPartition: ターゲットとするパーティションのライトウェイト ディレクトリ アクセス パーティション (LDAP) 名。 たとえば、残留オブジェクトが
contoso.com
ドメインのドメイン パーティションにある場合は、dc=contoso,dc=com を <LDAPPartition> に置き換えます。
残留オブジェクトを識別するためのコマンドの例を次に示します。
repadmin /removelingeringobjects dc1.contoso.com 4a8717eb-8e58-456c-995a-c92e4add7e8e dc=contoso,dc=com /advisory_mode
必要に応じて、最新の変更が行われると思われるドメイン コントローラーを特定するまで、追加のドメイン コントローラーで前の手順を繰り返します。 そのドメイン コントローラーを権限のあるドメイン コントローラーとして使用します。 /advisory_mode
スイッチを使用せずに repadmin /removelingeringobjects
コマンドを実行して、残留オブジェクトを実際に削除します。 必要に応じてコマンドを繰り返して、残留オブジェクトを含む各ドメイン コントローラーから削除します。
イベント ID 2042 に従ってレプリケーションを再開する
レプリケーションの通常の状態は、ドメイン コントローラーが最新の情報を受け取る方法でオブジェクトとその属性に対する変更が収束する状態です。 パートナー ドメイン コントローラーが古い変更を渡していることが検出されると、パートナーからの変更は "相違" と見なされます。パートナーは、"異なるレプリケーション" に従事していると言われます。通常、ドメイン コントローラーは、異なるレプリケーションに関与していると見なされるすべてのパートナーとのレプリケートを停止します。
残っているオブジェクトをすべて削除した後は、レジストリを編集してイベントをログに記録したドメイン コントローラーでレプリケーションを再開できます。
Note
すべての残留オブジェクトを削除した後にのみ、レプリケーションを再起動します。 レジストリを間違って編集すると、システムに重大な障害をもたらす可能性があります。 レジストリを変更する前に、コンピューター上の重要なデータのバックアップを作成する必要があります。
この手順を完了するには、少なくとも、Domain Admins グループ、またはそれと同等の権限を持つグループのメンバである必要があります。 既定のグループ メンバーシップの詳細については、「 Active Directory のローカル グループとドメインの既定のグループで確認します。
Repadmin を使用してイベント ID 2042 に従ってレプリケーションを再開する
管理者特権のコマンド プロンプトを開きます。 コマンド プロンプト ウィンドウを管理者特権で開くには、[スタート] ボタンをクリックし、[すべてのプログラム] をポイントします。次に、[アクセサリ] をクリックし、[コマンド プロンプト] を右クリックして、[管理者として実行] をクリックします。
コマンド プロンプトで、次のコマンドを入力して Enter キーを押します。
repadmin /regkey <hostname> +allowDivergent
パラメーター 説明 /regkey
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters
の Strict Replication Consistency レジストリ エントリの値を有効 (+) および無効にします。<hostname> 1 つのドメイン コントローラーの名前に置き換えるか、アスタリスク文字 (*) を使用してフォレスト内のすべてのドメイン コントローラーに変更を適用します。 ドメイン コントローラー名には、ドメイン ネーム システム (DNS) 名、ドメイン コントローラー コンピューター オブジェクトの識別名、またはドメイン コントローラー サーバー オブジェクトの識別名を使用できます。 +allowDivergent
残留オブジェクトを持つレプリケーション パートナーを使用してレプリケーションを再開できるようにします。 このコマンドは、すべての残留オブジェクトが削除された後にのみ実行する必要があります。 レプリケーションが再度正常に実行されたら、 -allowDivergent
スイッチを使用して、レプリケーションの相違が発生しないようにします。
Note
アスタリスク文字 (*) を使用してすべてのドメイン コントローラーに変更を適用しなかった場合は、レプリケーションの分岐を許可するすべてのドメイン コントローラーに対して手順 2 を繰り返します。
古いレプリケーションから保護するためにレジストリをリセットする
残留オブジェクトが削除され、ソース ドメイン コントローラーからレプリケーションが正常に行われたことに満足したら、Repadmin を使用して、レプリケーションの分岐を防ぎます。 レプリケーションの相違を防ぐには、次のコマンドを実行します。
repadmin /regkey <hostname> -allowDivergent
たとえば、contoso.com ドメインの DC1 という名前のドメイン コントローラーでのレプリケーションを制限するには、次のコマンドを実行します。
repadmin /regkey dc1.contoso.com -allowDivergent
Note
すべての残留オブジェクトを削除しなかった場合、レプリケーションを試みると、残留オブジェクトのレプリケーションが発生する可能性があります。 宛先ドメイン コントローラーで厳密なレプリケーション整合性が有効になっている場合、ソース ドメイン コントローラーでのレプリケーションは再度ブロックされます。
データ収集
Microsoft サポートからのサポートが必要な場合は、「 Active Directory レプリケーションの問題に TSS を使用して情報を収集する」に記載されている手順に従って情報を収集することをお勧めします。