Active Directory レプリケーション イベント ID 1388 または 1988: 残留オブジェクトが検出されました

この記事は、Active Directory レプリケーション イベント ID 1388 と 1988 のトラブルシューティングに役立ちます。

適用対象: Windows Server (サポートされているすべてのバージョン)
元の KB 番号: 4469619

概要

宛先ドメイン コントローラーが イベント ID 1388 またはイベント ID 1988 をログに記録した場合、残留オブジェクトが検出され、宛先ドメイン コントローラーに の 2 つの条件のいずれかが存在します。

  • イベント ID 1388: 残留オブジェクトの受信レプリケーションが宛先ドメイン コントローラーで発生しました。
  • イベント ID 1988: 残留オブジェクトのディレクトリ パーティションの受信レプリケーションが、宛先ドメイン コントローラーでブロックされました。

イベント ID 1388

このイベントは、厳密なレプリケーション整合性が有効になっていない宛先ドメイン コントローラーが、Active Directory データベースのローカル コピーに存在しないオブジェクトを更新する要求を受け取ったことを示します。 これに対して、移行先ドメイン コントローラーは、ソース レプリケーション パートナーに完全なオブジェクトを要求しました。 このようにして、残留オブジェクトが宛先ドメイン コントローラーにレプリケートされました。 したがって、残留オブジェクトはディレクトリに再導入されました。

重要

イベント ID 1388 が発生した場合、残留オブジェクトリキテーター v2 (LOLv2) または Repadmin ツールを使用して残留オブジェクトを削除することはできません。

この場合に残留オブジェクトを削除する方法については、次を参照してください。

この記事の手順と情報は、グローバル カタログ サーバーおよびグローバル カタログ サーバーではないドメイン コントローラーからの残留オブジェクトの削除に適用されます。

イベント テキストは、ソース ドメイン コントローラーと古い (残留) オブジェクトを識別します。 イベント テキストの例を次に示します。

ログ名: ディレクトリ サービス
ソース: Microsoft-Windows-ActiveDirectory_DomainService
日付: 2008 年 5 月 3 日午後 3:34:01
イベント ID: 1388
タスク カテゴリ: レプリケーション
レベル: エラー
キーワード: クラシック
ユーザー: 匿名ログオン
コンピューター: DC3.contoso.com 説明: 別のドメイン コントローラー (DC) が、ローカル Active Directory Domain Services データベースに存在しないオブジェクトをこの DC にレプリケートしようとしました。 オブジェクトは、この DC で削除され、既にガベージ コレクションされている可能性があります (オブジェクトが削除されてから、廃棄ストーンの有効期間以上が経過しています)。 更新要求に含まれる属性セットでは、オブジェクトを作成するのに十分ではありません。 オブジェクトは完全な属性セットで要求され、この DC で再作成されます。

ソース DC (トランスポート固有のネットワーク アドレス):
4a8717eb-8e58-456c-995a-c92e4add7e8e._msdcs.contoso.com
オブジェクト:
CN=InternalApps,CN=Users,DC=contoso,DC=com
オブジェクト GUID: a21aa6d9-7e8a-4a8f-bebf-c3e38d0b733a
ディレクトリ パーティション:
DC=contoso,DC=com
宛先の最も高いプロパティ USN: 20510
ユーザー アクション:
このオブジェクトの存在に対する継続的な欲求を確認します。 今後同様のオブジェクトの再作成を中止するには、次のレジストリ キーを作成する必要があります。

レジストリ キー:
HKLM\System\CurrentControlSet\Services\NTDS\Parameters\Strict Replication Consistency

イベント ID 1988

このイベントは、厳密なレプリケーション整合性が有効になっている宛先ドメイン コントローラーが、Active Directory データベースのローカル コピーに存在しないオブジェクトを更新する要求を受け取っていることを示します。 これに対して、移行先ドメイン コントローラーは、そのソース ドメイン コントローラーからのそのオブジェクトを含むディレクトリ パーティションのレプリケーションをブロックしました。 イベント テキストは、ソース ドメイン コントローラーと古い (残留) オブジェクトを識別します。 イベント テキストの例を次に示します。

ログ名: ディレクトリ サービス
ソース: Microsoft-Windows-ActiveDirectory_DomainService
日付: 2008/2/7 午前 8:20:11 イベント ID: 1988
タスク カテゴリ: レプリケーション
レベル: エラー
キーワード: クラシック
ユーザー: 匿名ログオン
コンピュータ: DC5.contoso.com
説明:
Active Directory Domain Services レプリケーションでは、ローカル ドメイン コントローラー (DC) Active Directory Domain Services データベースから削除された次のパーティションにオブジェクトが存在しました。 廃棄ストーンの有効期間が経過する前に、削除でレプリケートされた直接的または推移的なレプリケーション パートナーのすべてではありません。 Active Directory Domain Services パーティションから削除およびガベージ コレクションされたが、同じドメイン内の他の DC の書き込み可能なパーティションにまだ存在するオブジェクト、またはフォレスト内の他のドメインにあるグローバル カタログ サーバーの読み取り専用パーティションは、"残留オブジェクト" と呼ばれます。

ソース DC にローカル DC Active Directory Domain Services データベースに存在しない残留オブジェクトが含まれているため、このイベントがログに記録されます。 このレプリケーション試行がブロックされました。

この問題に対する最善の解決策は、フォレスト内のすべての残留オブジェクトを特定して削除することです。

ソース DC (トランスポート固有のネットワーク アドレス):
4a8717eb-8e58-456c-995a-c92e4add7e8e._msdcs.contoso.com
オブジェクト: CN=InternalApps,CN=Users,DC=contoso,DC=com
オブジェクト GUID:
a21aa6d9-7e8a-4a8f-bebf-c3e38d0b733a

診断

AD DS から完全に削除されたオブジェクト (つまり、その廃棄ストーンは、接続されているすべてのドメイン コントローラーでガベージ コレクションされています) は、切断されたドメイン コントローラーに残ります。 ドメイン コントローラーは、廃棄ストーンの有効期間を超えた期間、レプリケーション トポロジから切断された (オフラインまたは受信レプリケーションエラーが発生している) ため、オブジェクト削除の直接または推移的なレプリケーションを受信できませんでした。 ドメイン コントローラーがトポロジに再接続され、そのオブジェクトがドメイン コントローラーで更新され、レプリケーション パートナーに対して、更新プログラムがレプリケーションの準備ができていることを示すレプリケーション通知が発生します。 レプリケーション パートナーは、レプリケーションの整合性設定に従って応答しました。 この通知は、書き込み可能オブジェクトのレプリケーション試行に適用されます。 書き込み可能な残留オブジェクトのコピーは、グローバル カタログ サーバーにも存在する可能性があります。

解決方法

残留オブジェクトのレプリケーションが検出された場合は、このオブジェクトを格納する可能性があるドメイン コントローラー (グローバル カタログ サーバーを含む) を特定し、LOLv2 ツールを使用して削除するか、repadmin コマンドを実行してこれらのサーバー上の残留オブジェクトを削除することで、オブジェクトの読み取り専用レプリカと共に AD DS からオブジェクトを削除できます (repadmin /removelingeringobjects)。 このコマンドは、サポートされているバージョンの Windows Server を実行しているドメイン コントローラーで使用できます。

残留オブジェクトを削除するには、次の操作を行います。

  1. イベント テキストを使用して、次の情報を特定します。
    1. オブジェクトのディレクトリ パーティション
    2. 残留オブジェクトのレプリケーションを試行したソース ドメイン コントローラー
  2. Repadmin を使用して、権限のあるドメイン コントローラーの GUID を識別します
  3. LOLv2 または Repadminを使用して、残留オブジェクトを削除します。
  4. 必要に応じて、厳密なレプリケーション整合性を有効にします
  5. 必要に応じて、新しく昇格したドメイン コントローラーに対して厳密なレプリケーション整合性が有効になっていることを確認します

Repadmin を使用して、権限のあるドメイン コントローラーの GUID を識別します。

残留オブジェクトを削除する手順を実行するには、報告された残留オブジェクトを含むディレクトリ パーティションの書き込み可能なレプリカを持つ最新のドメイン コントローラーのグローバル一意識別子 (GUID) を識別する必要があります。 ディレクトリ パーティションは、イベント メッセージで識別されます。 ドメイン コントローラーのオブジェクト GUID は、 NTDS Settings オブジェクトの objectGUID 属性に格納されます。

要件:

ドメイン コントローラーの GUID を識別する手順:

  1. コマンド プロンプトで、次のコマンドを入力し、Enter キーを押します。

    repadmin /showrepl <ServerName>
    
    パラメーター 説明
    /showrepl ServerName> で<指定されたドメイン コントローラーが Active Directory パーティションの受信レプリケーションを最後に試行した場合など、レプリケーションの状態を表示します。 指定したドメイン コントローラーの GUID も表示されます。
    <ServerName> GUID を表示するドメイン コントローラーの名前。
  2. 出力の最初のセクションで、 objectGuid エントリを見つけます。 GUID 値を選択してテキスト ファイルにコピーして、他の場所で使用できるようにします。

LOLv2 または Repadmin を使用して、残留オブジェクトを削除します。

要件:

  • 残留オブジェクトを持つドメイン コントローラーのドメインの Domain Admins のメンバーシップ、または残留オブジェクトを持つディレクトリ パーティションが構成またはスキーマ ディレクトリ パーティションである場合は Enterprise Admins が、この手順を完了するために最低限必要です。 適切なアカウントとグループ メンバーシップの使用の詳細については、「 ローカル グループとドメインの既定のグループ」を参照してください

  • オペレーティング システム: サポートされているバージョンの Windows Server。

  • 残留オブジェクトを削除する推奨される方法は、 LOLv2 を使用することです。 場合によっては、LOLv2 を使用できない場合は、Repadmin.exe

LOLv2 の詳細:

Repadmin を使用して残留オブジェクトを削除する手順:

  1. 管理者としてコマンド プロンプトを開く: [スタート ] メニューの [ コマンド プロンプト] を右クリックし、[ 管理者として実行] をクリックします。 [ ユーザー アカウント制御 ] ダイアログ ボックスが表示されたら、必要に応じて Domain Admins または Enterprise Admins の資格情報を指定し、[ 続行] をクリックします。

  2. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    repadmin /removelingeringobjects <ServerName> <ServerGUID> <DirectoryPartition> /advisory_mode
    
    パラメーター 説明
    /removelingeringobjects DirectoryPartition> で指定されたディレクトリ パーティションの ServerName> で<指定されたドメイン コントローラーから残留オブジェクトを<削除します。
    <ServerName> イベント メッセージ (イベント ID 1388 またはイベント ID 1988) で識別される、残留オブジェクトを持つドメイン コントローラーの名前。 ドメイン ネーム システム (DNS) 名または識別名を使用できます。たとえば、識別名 CN=DC5、OU=Domain Controllers、DC=contoso、DC=com、DNS 名 DC5.contoso.comなどです。
    <ServerGUID> 残留オブジェクトを含むディレクトリ パーティションの最新の書き込み可能なレプリカを持つドメイン コントローラーの GUID。
    <DirectoryPartition> イベント メッセージで識別されるディレクトリ パーティションの識別名。次に例を示します。
    • フォレスト内の Sales ドメイン ディレクトリ パーティションの contoso.com 場合: DC=sales,DC=contoso,DC=com
    • フォレスト内の構成ディレクトリ パーティションの contoso.com 場合: CN=configuration,DC=contoso,DC=com
    • フォレスト内のスキーマ ディレクトリ パーティションの contoso.com 場合: CN=schema,CN=configuration,DC=contoso,DC=com
    /advisory_mode 削除される残留オブジェクトをログに記録して、それらを確認できますが、削除することはできません。
  3. 指定した残留オブジェクトをディレクトリ パーティションから削除せずに /advisory_mode 手順 2 を繰り返します。

  4. 残留オブジェクトがある可能性があるすべてのドメイン コントローラーについて、手順 2 と 3 を繰り返します。

注:

ServerName> パラメーターは <repadmin にDC_LIST構文を使用します。これにより、フォレスト内のすべてのドメイン コントローラーに * を使用し、フォレスト内のすべてのグローバル カタログ サーバーに対して gc: を使用できます。 DC_LIST構文を表示するには、「 」と入力します repadmin /listhelp。 パラメーターと パラメーターの /regkey 構文については、「」と /removelingeringobjects 入力します repadmin /experthelp

厳密なレプリケーション整合性を有効にします。

残留オブジェクトが発生した場合にレプリケートできないようにするには、すべてのドメイン コントローラーで厳密なレプリケーション整合性を有効にします。 レプリケーションの整合性の設定は、各ドメイン コントローラーのレジストリに格納されます。 ただし、サポートされているバージョンの Windows Server を実行しているドメイン コントローラーでは、Repadmin を使用して、1 つまたはすべてのドメイン コントローラーで厳密なレプリケーション整合性を有効にすることができます。

Repadmin を使用して、厳密なレプリケーション整合性を有効にします。

サポートされているバージョンの Windows Server を実行しているドメイン コントローラー上の残留オブジェクトを削除するには、次の手順を実行します。

1 つのドメイン コントローラーでこの手順を完了するには、 Domain Admins のメンバーシップまたは同等のメンバーシップが最低限必要です。 Enterprise Admins のメンバーシップまたは同等のメンバーシップは、フォレスト内のすべてのドメイン コントローラーでこの手順を完了するために最低限必要です。 適切なアカウントとグループ メンバーシップの使用の詳細については、「 ローカル グループとドメインの既定のグループ」を参照してください

Repadmin を使用して厳密なレプリケーション整合性を有効にする手順:
  1. 管理者としてコマンド プロンプトを開く: [スタート ] メニューの [ コマンド プロンプト] を右クリックし、[ 管理者として実行] をクリックします。 [ ユーザー アカウント制御 ] ダイアログ ボックスが表示されたら、必要に応じて Domain Admins または Enterprise Admins の資格情報を指定し、[ 続行] をクリックします。

  2. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    repadmin /regkey <DC_LIST> +strict
    
    パラメーター 説明
    /regkey で厳密 なレプリケーション整合性 レジストリ エントリ HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parametersの値 (+) を有効にして無効にします (-)
    <DC_LIST> フォレスト内のすべてのドメイン コントローラーに変更を適用する 1 つのドメイン コントローラーの名前。または *。 ドメイン コントローラー名には、DNS 名、ドメイン コントローラー コンピューター オブジェクトの識別名、またはドメイン コントローラー サーバー オブジェクトの識別名を使用できます。たとえば、識別名 CN=DC5、OU=Domain Controllers、DC=contoso、DC=com、DNS 名 DC5.contoso.comなどです。
    +strict 厳密なレプリケーション整合性レジストリ エントリを有効にします。
  3. * を使用してすべてのドメイン コントローラーに変更を適用しない場合は、厳密なレプリケーション整合性を有効にするドメイン コントローラーごとに手順 2 を繰り返します。

注:

DC_LIST> パラメーターの構文に関するその他の<名前付けオプションと情報については、コマンド プロンプトに「」と入力しますrepadmin /listhelp。 パラメーターと パラメーターの /regkey 構文については、「」と /removelingeringobjects 入力します repadmin /experthelp

Regedit を使用して、厳密なレプリケーション整合性を有効にします。

Repadmin を使用する代わりに、レジストリを直接編集することで、厳密なレプリケーション整合性を有効にすることができます。 レプリケーション整合性の設定は、 の 厳密なレプリケーション整合性 エントリに HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters格納されます。

厳密なレプリケーション整合性レジストリ エントリの値は次のとおりです。

  • 値: 1 (無効にする場合は 0)

  • 既定値: 新しい Windows Server では 1 (有効) です。それ以外の場合は 0。

  • データ型: REG_DWORD

要件:

注:

他の方法がない限り、レジストリを直接編集しないことをお勧めします。 レジストリへの変更は、レジストリ エディターまたは Windows によって適用される前に検証されず、その結果、正しくない値が格納される可能性があります。 これにより、システムで回復不可能なエラーが発生する可能性があります。 可能な場合は、レジストリを直接編集するのではなく、グループ ポリシーまたは Microsoft 管理コンソール (MMC) などの他の Windows ツールを使用してタスクを実行します。 レジストリを編集する必要がある場合は、細心の注意を払ってください。

Regedit を使用して厳密なレプリケーション整合性を有効にする手順
  1. 管理者として Regedit を開く: [ スタート ] をクリックし、[ 検索の開始]「regedit」と入力します。 [スタート] メニューの上部にある [regedit.exe] を右クリックし、[管理者として実行] をクリックします。 [ ユーザー アカウント制御 ] ダイアログ ボックスで、Domain Admins 資格情報を指定し、[OK] をクリック します

  2. [厳密なレプリケーション整合性 ] エントリに HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters移動します。

  3. [厳密なレプリケーション整合性] エントリの値を 1 に設定します。

新しく昇格したドメイン コントローラーに対して厳密なレプリケーション整合性が有効になっていることを確認する

Windows 2000 Server を実行しているコンピューターを使用して最初に作成されたフォレストをアップグレードする場合は、オブジェクトの残留を回避するために、新しく昇格したドメイン コントローラーで厳密なレプリケーション整合性を有効にするようにフォレストが構成されていることを確認する必要があります。 「Active Directory ドメインを Windows Server 2008 および Windows Server 2008 R2 AD DS ドメインにアップグレードする」の説明に従ってフォレストを更新すると、その後フォレストに追加するすべての新しいドメイン コントローラーが作成され、厳密なレプリケーション整合性が無効になります。 ただし、フォレスト構成の変更を実装すると、新しいドメイン コントローラーで厳密なレプリケーション整合性が有効になります。 フォレストに追加する新しいドメイン コントローラーで厳密なレプリケーション整合性が有効になるようにするには、Ldifde.exe ツールを使用して、フォレストの構成ディレクトリ パーティションにオブジェクトを作成します。 このオブジェクトは、フォレストに昇格される新しいドメイン コントローラーで厳密なレプリケーション整合性を有効にする役割を担います。

作成するオブジェクトは、次の名前の操作 GUID です。

CN=94fdebc6-8eeb-4640-80de-ec52b9ca17fa,CN=Operations,CN=ForestUpdates,CN=Configuration,DC=<ForestRootDomain>

フォレスト内の任意のドメイン コントローラーで次の手順を使用して、このオブジェクトを構成ディレクトリ パーティションに追加できます。

エンタープライズ管理者または同等のメンバーシップは、この手順を完了するために最低限必要です。 適切なアカウントとグループ メンバーシップの使用の詳細については、「 ローカル グループとドメインの既定のグループ」を参照してください

新しいドメイン コントローラーで厳密なレプリケーションの一貫性を確保するオブジェクトを作成する手順

  1. メモ帳などのテキスト エディターで、次のテキスト ファイルを作成します。

    dn:
    CN=94fdebc6-8eeb-4640-80de-ec52b9ca17fa,CN=Operations,CN=ForestUpdates,CN=Configuration,DC=<ForestRootDomain>
    changetype: add
    objectClass: コンテナー
    showInAdvancedViewOnly: TRUE
    name: 94fdebc6-8eeb-4640-80de-ec52b9ca17fa
    objectCategory: CN=Container,CN=Schema,CN=Configuration,DC=<ForestRootDomain>

  2. <ForestRootDomain> には、フォレストルート ドメインのすべてのドメイン コンポーネント (DC=) が含まれます。たとえば、contoso.comフォレストの場合は DC=contoso、DC=com、フォレストの場合fineartschool.netは DC=fineartschool、DC=net です。

  3. 管理者としてコマンド プロンプトを開く: [スタート ] メニューの [ コマンド プロンプト] を右クリックし、[ 管理者として実行] をクリックします。 [ ユーザー アカウント制御 ] ダイアログ ボックスが表示されたら、必要に応じて Enterprise Admins の資格情報を指定し、[ 続行] をクリックします。

  4. コマンド プロンプトで次のコマンドを入力し、Enter キーを押します。

    ldifde -i -f <Path>\<FileName>
    
    パラメーター 説明
    -i インポート モードを指定します。 インポート モードが指定されていない場合、既定のモードは export です。
    -f インポートまたはエクスポート ファイル名を識別します。
    <Path>\<FileName> 手順 1 で作成したインポート ファイルのパスと名前 (例: C:\ldifde.txt)。

    Ldifde の使用については、「 LDIFDE」を参照してください。

データ収集

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