次の方法で共有


Windows Server Active Directory フォレスト内の残留オブジェクトを検出して削除する方法

この記事では、Active Directory Domain Services (AD DS) フォレスト内の残留オブジェクトについて説明します。 具体的には、残留オブジェクトの存在を示すイベント、残留オブジェクトの原因、および残留オブジェクトを削除するために使用できるメソッドについて説明します。

元の KB 番号: 910205

概要

残留オブジェクトは、削除後に AD DS フォレストに再び表示されるオブジェクトです。 この動作は、ドメイン コントローラーがフォレスト内の他のドメイン コントローラーとの間の変更のレプリケートを一度停止した後、再度レプリケートを開始した場合に発生する可能性があります。 この動作は、フォレストが複数のドメイン コントローラー間でオブジェクトの削除をレプリケートする方法が原因で発生します。

オブジェクトの削除がフォレストを通じてレプリケートされる方法

AD DS フォレスト内のオブジェクトを削除すると、削除されたオブジェクトを表す廃棄オブジェクトが AD DS によって生成されます。 tombstone オブジェクトには、削除されたオブジェクトの属性の小さなサブセットが含まれています。 ドメインとフォレスト内の他のドメイン コントローラーは、受信レプリケーションを使用して廃棄オブジェクトを受信し、削除を考慮してフォレスト情報を更新します。 tombstone オブジェクトは、指定された期間にわたってフォレスト内に残ります。これは、廃棄石の有効期間 (TSL) と呼ばれます。 TSL の最後に、AD DS によって廃棄オブジェクトが完全に削除されます。 送信元ドメイン コントローラーのすべての直接レプリケーション パートナーと推移的レプリケーション パートナーは、TSL 内の廃棄オブジェクトのコピーを受け取る必要があります。

TSL の既定値は、フォレストにインストールされている最初のドメイン コントローラーで実行されているオペレーティング システムのバージョンによって異なります。 現在サポートされているすべてのバージョンの Windows Server では、既定の TSL は 180 日です。

注:

ドメイン コントローラーを新しいバージョンの Windows Server にアップグレードしても、既存の TSL 値は変更されません。 既存の TSL 値は、手動で変更するまで保持されます。

残留オブジェクトの発生方法

残留オブジェクトは、ドメイン コントローラーが残りのレプリケーション トポロジとの間の変更のレプリケートを一時的に停止した後、もう一度レプリケートを開始した場合に発生する可能性があります (たとえば、サーバーを物理的に切断して移動してから再接続する必要がある場合など)。 ドメイン コントローラーが TSL より長い期間レプリケートしない場合、ドメイン コントローラーは 1 つ以上の廃棄オブジェクトを受け取らない可能性があります。 そのため、他のすべてのドメイン コントローラー上のフォレストから削除された 1 つ以上のオブジェクトが、切断されたドメイン コントローラーに保持される可能性があります。 このようなオブジェクトは、残留オブジェクトと呼ばれます。

切断されたドメイン コントローラーは、再びレプリケートを開始すると、移行先パートナーに存在しないオブジェクトを持つソース レプリケーション パートナーとして機能します。 宛先ドメイン コントローラーは、次のいずれかのアクションを実行して応答します。

  • 宛先ドメイン Strict Replication Consistency コントローラーでレジストリ キーが有効になっている場合、そのドメイン コントローラーはオブジェクトを更新できないことを認識します。 移行先ドメイン コントローラーは、ソース ドメイン コントローラーからのディレクトリ パーティションの受信レプリケーションをローカルで停止します。

  • Strict Replication Consistency宛先ドメイン コントローラーでレジストリ キーが無効になっている場合、そのドメイン コントローラーはオブジェクトの完全なレプリカを要求します。 この操作により、オブジェクトがフォレストに再導入されます。 管理の観点から、削除したオブジェクトが再び表示されます。

残留オブジェクトは、必ずしも顕著な症状を引き起こすとは限りません。 次の条件では、残留オブジェクトが検出されない可能性があります。

  • 管理者、アプリケーション、またはサービスは、残留オブジェクトを更新しません。
  • 管理者、アプリケーション、またはサービスは、ドメイン内で同じ名前のオブジェクトを作成しようとしません。
  • 管理者、アプリケーション、またはサービスは、フォレスト内で同じユーザー プリンシパル名 (UPN) を使用してオブジェクトを作成しようとしません。

長い切断の原因

オブジェクトの残留を回避する最も簡単な方法は、ドメイン コントローラーが TSL より長い期間、レプリケーション トポロジから切断されないようにすることです。 ドメイン コントローラーを長期間切断する必要がある場合は、残留オブジェクトの可能性に注意してください。

次の条件により、長い切断が発生する可能性があります。

  • 管理者は、ネットワークからドメイン コントローラーを削除し、それをストレージに配置します。

  • 管理者はドメイン コントローラーを事前にステージし、リモートの場所に送信します。 ただし、ドメイン コントローラーがリモートの場所に到達する前に TSL の有効期限が切れます。

  • ドメイン コントローラーは、長期間にわたってワイド エリア ネットワーク (WAN) に接続できません。 たとえば、クルーズ船に乗っていたドメイン コントローラーは、船が海にいる場合、TSL よりも長くレプリケートできない可能性があります。

次の条件では、ドメイン コントローラーが既定の TSL 未満でオフラインであった場合でも、残留オブジェクトが表示されることがあります。

  • 管理者は TSL を短縮して、削除されたオブジェクトのガベージ コレクションを強制します。

  • ソースまたは宛先ドメイン コントローラーのシステム クロックが正しく高度であるか、ロールバックされていません。 クロック スキューは、ドメイン コントローラーの再起動後に最も一般的であり、次の理由で発生する可能性があります。

    • システム クロック バッテリーまたはマザーボードに問題があります。

    • コンピューターのタイム ソースが正しく構成されていません。 このようなソースには、Windows タイム サービス (W32Time) を使用するか、サード パーティのタイム サーバーを使用するか、ネットワーク ルーターを使用して構成されたタイム ソース サーバーを含めることができます。

    • 管理者は、システム状態のバックアップの耐用年数を延長したり、削除されたオブジェクトのガベージ コレクションを高速化したりするために、システム クロックを進めたりロールバックしたりします。 システム クロックに実際の時刻が反映されていることを確認します。 また、イベント ログに将来または過去の無効なイベントが含まれていないことを確認します。

フォレストに残留オブジェクトがあることを示す

目立った効果がない場合でも、残留オブジェクトが存在すると問題が発生する可能性があります。 これらの問題は、残留オブジェクトがセキュリティ プリンシパルである場合に発生する可能性が最も高くなります。

フォレストに残留オブジェクトがある可能性があることを示すイベント

イベント ID 総記
1862 または 1863 ローカル ドメイン コントローラーは、最近、複数のドメイン コントローラー (サイト間) からレプリケーション情報を受信していません。
1864 ローカル ドメイン コントローラーが最近、複数のドメイン コントローラーからレプリケーション情報を受信していません (概要)。
1311 ナレッジ整合性チェッカー (KCC) では、スパニング ツリー トポロジを構築できませんでした。
2042 このサーバーが最後に名前付きソース サーバーと共にレプリケートされてから長すぎます。

フォレストに残留オブジェクトがあることを示すイベント

イベント ID 総記
1084 サーバーにこのようなオブジェクトはありません。
1388 この移行先システムは、ローカルに存在する必要があるが、存在しなかったオブジェクトの更新を受け取った。
1311 別のドメイン コントローラーが、このドメイン コントローラーに存在しないオブジェクトをレプリケートしました。

注:

  • 残留オブジェクトは、イベント ID 1988 をログに記録するドメイン コントローラーには存在しません。 ソース ドメイン コントローラーには、残留オブジェクトが含まれています。
  • 残留オブジェクトに対する更新がドメイン コントローラー間でレプリケートされる場合、ドメイン コントローラーのイベント ログの動作は、残留オブジェクトを含むディレクトリ パーティションが書き込み可能かどうかによって異なります。 宛先ドメイン コントローラーの残留オブジェクトが書き込み可能なパーティションに存在する場合、ドメイン コントローラーはイベントをログに記録します。 残留オブジェクトが読み取り専用パーティションに存在する場合、オブジェクトは更新できません。ドメイン コントローラーはイベントをログに記録しません。

フォレストに残留オブジェクトがあることを示す Repadmin エラー

イベント ID 総記
8240 サーバーにこのようなオブジェクトはありません。
8606 オブジェクトを作成するための属性が不足していました。

フォレストに残留オブジェクトがあることを示すその他の兆候

  • Microsoft Exchange Server グローバル アドレス一覧 (GAL) には、削除されたユーザーまたはグループ アカウントが含まれています。 この場合、アカウント名は GAL に表示されますが、ユーザーが電子メール メッセージを送信しようとするとエラーが発生します。

  • オブジェクトはフォレスト内で一意である必要がありますが、オブジェクト ピッカーまたは GAL にオブジェクトの複数のコピーが表示されます。 このようなケースには、名前が変更された重複オブジェクトが含まれる場合があります。 これらの重複するオブジェクトはディレクトリ検索を混乱させる。 たとえば、検索で 2 つのオブジェクトの相対識別名を解決できない場合、競合解決関数はいずれかの名前に追加 *CNF:<GUID> されます。 この例では、 * は予約文字を表し、 CNF 競合解決を示す定数であり <GUID>objectGUID 属性値を表します。

  • ユーザーは現在のアカウントを持っていますが、アカウントの名前が変更されました。 ユーザーは電子メール メッセージを受信しません。 ユーザー オブジェクト (現在のインスタンスと古いバージョン) の両方のインスタンスが GAL に表示されます。 両方のオブジェクトに同じメール アドレスがあるため、メール メッセージを配信できません。

  • 存在しなくなったユニバーサル グループは、引き続きユーザーのアクセス トークンに表示されます。 そのため、ユーザーは、そのユーザーが使用できないリソースにアクセスできる可能性があります。

  • 新しいオブジェクトまたは Exchange メールボックスを作成することはできません。 ただし、フォレストにオブジェクトは表示されません。 エラー メッセージは、オブジェクトが既に存在することを報告します。

  • 既存のオブジェクトの属性を使用する検索では、同じ名前を使用するオブジェクトの複数のコピーが誤って見つかる可能性があります。 1 つのオブジェクトがドメインから削除されましたが、そのオブジェクトは分離されたグローバル カタログ サーバーに残ります。

フォレストから残留オブジェクトを削除する

次のいずれかの方法を選択して、残留オブジェクトを削除します。

方法 1: LOLv2 を使用する

残留オブジェクトを検出して削除する推奨される方法は、残留オブジェクトリキテーター v2 (LoLv2) を使用することです。 ツールをダウンロードするには、「残留オブジェクトリクイッドエーター (LoL)」を参照してください。

LoLv2 の使用方法の詳細については、次の記事を参照してください。

方法 2: Repadmin ツールを使用する

LoLv2 を使用できない場合は、Repadmin ツール (Repadmin.exe) を使用できます。 詳細については、「 Repadmin を使用して残留オブジェクトを削除する手順」を参照してください。

残留オブジェクトの防止

フォレスト内のオブジェクトが残留しないようにするには、次のいずれかの方法を使用します。

方法 1: 厳密なレプリケーション整合性レジストリ エントリを有効にする

重要

このセクション、方法、またはタスクには、レジストリの編集方法が記載されています。 レジストリを誤って変更すると、深刻な問題が発生することがあります。 レジストリを変更する際には十分に注意してください。 保護のために、レジストリを変更する前にレジストリをバックアップして、問題が発生した場合にレジストリを復元できるようにします。 レジストリをバックアップおよび復元する方法の詳細については、「Windows でレジストリをバックアップおよび復元する方法」を参照してください。

疑わしいオブジェクトが Strict Replication Consistency ソース ドメイン コントローラーで検疫されるように、各ドメイン コントローラーでレジストリ エントリを有効にすることができます。 その後、管理者は、オブジェクトがフォレスト全体に広がる前に、これらのオブジェクトを削除できます。

書き込み可能な残留オブジェクトが環境内にあり、オブジェクトの更新が試行された場合、レジストリ エントリの値によって Strict Replication Consistency レプリケーションが続行されるか停止されるかが決まります。 レジストリ エントリは Strict Replication Consistency 、次のレジストリ サブキーにあります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters

  • 名前: Strict Replication Consistency
  • データ型: REG_DWORD
  • 値:
    • 0 (無効)。 移行先ドメイン コントローラーは、ソース ドメイン コントローラーから完全なオブジェクトを要求します。 残留オブジェクトは、フォレスト内に新しいオブジェクトとして再表示されます。
    • 1 (有効)。 移行先ドメイン コントローラーは、ソース ドメイン コントローラーからの関連ディレクトリ パーティションの受信レプリケーションを停止します。

Strict Replication Consistency 既定値は、フォレスト内の最初のドメイン コントローラーの Windows バージョンによって異なります。 このコンピューターは、新しいフォレストのフォレスト ルート ドメインを作成します。

  • Windows Server 2003 以降のバージョンを実行しているサーバーを昇格することによってフォレストが作成された場合、フォレストに追加するすべてのドメイン コントローラーで の Strict Replication Consistency 既定値は 1 (有効) です。

  • Windows 2000 Server を実行しているサーバーを昇格することによってフォレストが作成された場合、フォレストに追加するすべてのドメイン コントローラーの既定値 Strict Replication Consistency0 (無効) です。 この場合は、「 新しく昇格したドメイン コントローラーで厳密なレプリケーション整合性が有効になっていることを確認する」の手順に従います。

注:

ドメインまたはフォレストの機能レベルを上げた場合、ドメイン コントローラーの値は Strict Replication Consistency 変更されません。

有効にするには Strict Replication Consistency 、Repadmin を使用することをお勧めします。 これを行う方法の詳細については、次の記事を参照してください。

方法 2: コマンド ライン コマンドを使用してレプリケーションを確認する

コマンドを使用してレプリケーションを確認するには、次の repadmin /showrepl 手順に従います。

  1. コマンド プロンプト ウィンドウを開きます ([実行の開始>] を選択し、「cmd」と入力し、[OK] を選択します)。

  2. コマンド プロンプトで、次のコマンドを実行します。

    repadmin /showrepl * /csv >showrepl.csv
    
  3. Microsoft Excel で、 Showrepl.csv ファイルを開きます。

  4. [A + RPC] 列と [SMTP] 列を選択し、[削除の編集>] を選択します

  5. 列ヘッダーのすぐ下にある行を選択し、[ Windows>固定ウィンドウ] を選択します。

  6. スプレッドシート全体を選択し、[データ>フィルターの自動フィルター>] を選択します。

  7. [ 最後の成功 ] 列の見出しで下矢印を選択し、[ 昇順で並べ替え] を選択します。

  8. src DC 列の見出しで下矢印を選択し、[カスタム] を選択します

  9. [ カスタム オートフィルター ] ダイアログ ボックスで、[ が含まれていない] を選択します。

  10. 含まれていないの右側のボックスに「del」と入力 します

    注:

    この手順により、削除されたドメイン コントローラーが結果に表示されなくなります。

  11. [ 最後の失敗 ] 列の見出しで下矢印を選択し、[カスタム] を選択 します

  12. [ カスタム オートフィルター ] ダイアログ ボックスで、[ 等しくない] を選択します。

  13. の右側のボックスに「0」と入力します。

  14. フィルター処理されたスプレッドシートでレプリケーションエラーを確認します。 これらは、解決する必要がある問題です。

方法 3: ドメイン コントローラーを削除する

ドメイン コントローラーを削除して置き換える必要がある場合、またはドメイン コントローラーが失敗している可能性がある場合は、ドメイン コントローラーがオフラインになっている期間が TSL 未満であることを確認してください。

方法 4: TSL を増やす

Windows PowerShell または ADSI Edit を使用して、TSL を 180 日に増やすことができます。

PowerShell を使用して TSL を増やすには、管理 PowerShell ウィンドウを開き、次のコマンドを順番に実行します。

$ADForestconfigurationNamingContext = (Get-ADRootDSE).configurationNamingContext

Set-ADObject -Identity “CN=Directory Service,CN=Windows NT,CN=Services,$ADForestconfigurationNamingContext” -Partition $ADForestconfigurationNamingContext -Replace @{tombstonelifetime=’180′}

ADSI 編集は、サーバー マネージャーの [ツール ] メニューで使用できます。 TSL を変更するには、次の手順に従います。

  1. ADSI Edit で、フォレストの構成パーティションに接続します。 これを行うには、次の手順を実行します。
    1. 左側のウィンドウで[ ADSI Edit]\(ADSI 編集\) を右クリックし、[ 接続] を選択します。
    2. [ 接続設定] で、[ 既知の名前付けコンテキストの選択] を選択し、[ 構成] を選択します。
    3. [OK] を選択します。
  2. ナビゲーション ツリーで、 CN=Configuration>CN=Services>CN=Windows NT>CN=Directory Service に移動します。
  3. [CN=Directory Service] を右クリックし、[プロパティ] を選択します。
  4. [ 属性 ] タブを選択します。
  5. [ 表示するプロパティの選択] ボックスの 一覧で、[ 省略可能] を選択します。
  6. [ 表示するプロパティの選択 ] の一覧で、[ TombstoneLifetime] を選択します。
  7. [ 属性の編集 ] ボックスに「 180」と入力し、[ 設定] を選択し、[ OK] を選択します

Microsoft サポートのデータの収集

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