Windows Server 2003 で Active Directory の古いオブジェクトによってイベント ID 1988 が生成される

適用対象: Windows Servers

現象


Microsoft Windows Server 2003 ベースのドメイン コントローラで、ディレクトリ サービスのイベント ログに次のエラー イベントが記録されます。

原因


この問題は、ソース ドメイン コントローラに、複数回の廃棄 (Tombstone) の有効期間にわたってレプリケーションの対象外であった古いオブジェクトが含まれる場合に発生します。 該当するソース ドメイン コントローラは、イベント メッセージで特定されます。 これらの古いオブジェクトは、"残留オブジェクト" と呼ばれます。 廃棄 (Tombstone) の有効期間として設定された値よりも長い期間にわたってオフライン状態にあったドメイン コントローラには、他のドメイン コントローラやグローバル カタログ サーバー上には既に削除されたオブジェクトが含まれることがあります。 デフォルトの廃棄 (Tombstone) の有効期間は 60 日です。 また、これらのオブジェクトの廃棄 (Tombstone) の期間の設定がもはや存在しない場合もあります。 古いドメイン コントローラをオンラインに戻すと、オブジェクトの削除についての通知を受信できません。

解決方法


この問題を解決するには、Repadmin ツールを使用して、ディレクトリ パーティションから残留オブジェクトを削除します。 repadmin /removelingeringobjects コマンドを使用すると、次の処理が実行されます。
  1. 権限のある最新のドメイン コントローラを指定します。 このドメイン コントローラは、権限のあるディレクトリ レプリカとして動作します。
  2. 権限のあるサーバー上の Active Directory ディレクトリ サービス データベース オブジェクトを、残留オブジェクトが含まれるソース レプリケーション パートナー上のオブジェクトと比較します。
  3. 残留オブジェクトを削除するか、または、ディレクトリ サービスのイベント ログに、オブジェクトが削除されている可能性があることを記録します。 どちらの処理を実行するかは、/advisory_mode パラメータを使用するかどうかで決まります。
repadmin /removelingeringobjects コマンドを使用するには、次の手順を実行します。

注: repadmin /removelingeringobjects コマンドを使用するには、ソース ドメイン コントローラと宛先ドメイン コントローラがいずれも Windows Server 2003 を実行している必要があります。
  1. Repadmin ツールをインストールします。 Repadmin ツールは、Windows Server 2003 CD-ROM に収録されている Windows Server 2003 サポート ツールに含まれています。 サポート ツールをインストールするには、
    Suptools.msi
    (CD_Drive:\Support\Tools フォルダにある) をダブルクリックします。
  2. コマンド プロンプトで repadmin /removelingeringobjects Destination_domain_controller
    Source_domain_controller_GUID
    Directory_partition /advisory_mode
    と入力し、Enter キーを押します。

    注: /advisory_mode パラメータは省略可能です。 このパラメータを使用すると、イベント ID 1988 で報告された残留オブジェクトが、残留オブジェクトが含まれているのではないかと考えられるサーバー上の Active Directory データベースに存在することを確認できます。 このパラメータを使用すると、残留オブジェクトは削除されません。 代わりに、/advisory_ mode パラメータを使用すると、フォルダからオブジェクトを削除する前にコマンドの実行結果を確認できます。 Repadmin を使用して残留オブジェクトを実際に削除する前に、必ず、/advisory_ mode パラメータを使用することをお勧めします。
    • Destination_domain_controller には、残留オブジェクトを含むドメイン コントローラの DNS (Domain Name System) の名前または IP アドレスを指定します。 イベント ID 1988 では、この値にはソース ドメイン コントローラのフィールドで特定されたサーバーが示されます。

      注: 残留オブジェクトを含む複数の宛先ドメイン コントローラを指定するには、dc_list パラメータを使用します。 残留オブジェクトの削除処理は、その他のドメイン コントローラにレプリケートされないため、残留オブジェクトを含むすべての宛先ドメイン コントローラとグローバル カタログ サーバーに対して repadmin /removelingeringobjects コマンドを実行する必要があります。 dc_list パラメータの詳細について参照するには、コマンド プロンプトで repadmin /listhelp と入力し、Enter キーを押します。
    • Source_domain_controller_GUID には、権限のあるサーバーとして使用するソース ドメイン コントローラのオブジェクト GUID を指定します。 ソース ドメイン コントローラのオブジェクト GUID を取得するには、次のいずれかの方法を使用します。

      方法 1

      コマンド プロンプトで repadmin /showrepl /v
      name of the authoritative server
      と入力し、Enter キーを押します。 ドメイン コントローラのオブジェクト GUID が
      [DC object GUID] フィールドに一覧表示されます。

      方法 2

      Active Directory サイトとサービス ツールを使用して、ソース ドメイン コントローラのオブジェクト GUID を見つけます。 これを行うには、次の手順を実行します。
      1. [スタート] をクリックし、
        [管理ツール] をポイントして、[Active Directory サイトとサービス] をクリックします。
      2. [Sites] を展開し、権限のあるドメイン コントローラが配置されているサイトを展開し、
        [Servers] を展開します。次に、ドメイン コントローラを展開します。
      3. [NTDS Settings] を右クリックし、[プロパティ] をクリックします。
      4. [DNS エイリアス] ボックスの値を参照します。 GUID
        (_msdcs.forest_root_name.com の前に表示されている) が、ドメイン コントローラのオブジェクト GUID です。 Repadmin ツールで必要になるのは GUID だけです。 ここで、
        Repadmin の構文に _msdcs.forest_root_domain_name.com を含めないようにしてください。
    • Directory_partition には、残留オブジェクトを含むディレクトリ パーティションの識別名 (DN) を指定します。 イベント メッセージでは、
      object_distinguished_name の一部として表示されます。
  3. 必要に応じて、次のパーティションに対しても同じ手順を繰り返します。
    • ドメイン ディレクトリ パーティション (dc=domain_DN)
    • 構成ディレクトリ パーティション (cn=Configuration,dc=forest_root_DN)
    • アプリケーション ディレクトリ パーティション
      (cn=Application_directory_partition_name,dc=domain_DN)
      (cn=Application_directory_partition_name,dc=forest_root_DN)
    • スキーマ ディレクトリ パーティション (cn=Schema, cn=Configuration,dc=,dc=forest_root_DN)

詳細情報


コマンド構文例

次に、架空の Example.com ドメインに対する repadmin /removelingeringobjects コマンド構文の例を示します。
C:\>repadmin /removelingeringobjects domain_controller.example.com A0AE6093-15F5-4DB8-836B-4495E3A15396 dc=example,dc=com /advisory_mode
コマンドが正常に実行されると、次のメッセージが表示されます。
RemoveLingeringObjects successful on
domain_controller_name.domain_name.com


注: Repadmin ツールについて詳細なヘルプを参照するには、/experthelp パラメータを使用します。

残留オブジェクトの削除に関連するイベント

残留オブジェクトを削除すると、残留オブジェクトが含まれるドメイン コントローラではすべての削除情報が記録されます。 情報には、ソース ドメイン コントローラ、削除されたオブジェクト、および削除されたオブジェクトの総数が含まれます。 残留オブジェクトの削除処理中、ディレクトリ サービスのログには次のイベントが記録されます。Windows Server 2003 における残留オブジェクトの削除の詳細については、次のマイクロソフト Web サイトの「Lingering Object Removal」 (英語情報) を参照してください。

誤って報告された残留オブジェクト

advisory モードで removelingeringobjects 構文と共に Repadmin ツールを使用してドメイン コントローラを確認すると、削除された一部のオブジェクトが次のディレクトリ サービス イベント ログで残留として報告されることがあります。 このイベントは、削除されたオブジェクトが既にソース ドメイン コントローラでガベージ コレクションされているが、削除されたオブジェクトがまだ宛先ドメイン コントローラでガベージ コレクションされていない場合にログに記録されます。 この場合、Repadmin ツールはオブジェクトの objectGuid を検出し、それを残留オブジェクトとして報告します。 さらに、オブジェクトの objectGuid は宛先ドメイン コントローラに存在しますが、オブジェクトの objectGuid はソース ドメイン コントローラに存在しません。 このオブジェクトは次のガベージ コレクション サイクルで削除されるため、オブジェクト GUID を含むすべての NTDS レプリケーション 1946 イベントを無視しても問題ありません。

オブジェクトが削除されると、isDeleted 属性は TRUE に設定されます。 isDeleted 属性のこの変更は、レプリケートされる最後のオブジェクトの変更です。 ガベージ コレクションとは、NTDS データベースからオブジェクトを削除することです。 ガベージ コレクションは、ドメイン コントローラ上のローカル プロセスです。 この最終的な変更はレプリケートされません。 場合によっては、オブジェクトは宛先ドメインコントローラーで作成されたときに残留していると報告されますが、オブジェクトはまだソース ドメイン コントローラにレプリケートされていません。 これを確認するには、通常のレプリケーション遅延時間の後に Repadmin ツールと removelingeringobjects 構文を使用します。 オブジェクトが残留として報告されない場合は、誤って報告された残留オブジェクトとして無視しても問題ありません。