この記事では、Active Directory ドメイン Services (AD DS) フォレスト内の残留オブジェクトについて説明します。 具体的には、残留オブジェクトの存在を示すイベント、残留オブジェクトの原因、および残留オブジェクトを削除するために使用できるメソッドについて説明します。
元の KB 番号: 910205
まとめ
残留オブジェクトは、削除後に AD DS フォレストに再び表示されるオブジェクトです。 この動作は、ドメイン コントローラーが一定期間フォレスト内の他のドメイン コントローラーとの間で変更のレプリケートを停止した後、再びレプリケートを開始した場合に発生する可能性があります。 この動作は、フォレストが複数のドメイン コントローラー間でオブジェクトの削除をレプリケートする方法が原因で発生します。
オブジェクトの削除がフォレストを通じてレプリケートされる方法
AD DS フォレスト内のオブジェクトを削除すると、削除されたオブジェクトを表す廃棄オブジェクトが AD DS によって生成されます。 tombstone オブジェクトには、削除されたオブジェクトの属性の小さなサブセットが含まれています。 ドメインとフォレスト内の他のドメイン コントローラーは、受信レプリケーションを使用して tombstone オブジェクトを受信し、削除を考慮してフォレスト情報を更新します。 tombstone オブジェクトは、廃棄石の有効期間 (TSL) と呼ばれる指定された期間フォレストに残ります。 TSL の最後に、AD DS は廃棄オブジェクトを完全に削除します。 送信元ドメイン コントローラーのすべての直接および推移的レプリケーション パートナーは、TSL 内の tombstone オブジェクトのコピーを受け取る必要があります。
TSL の既定値は、フォレストにインストールされている最初のドメイン コントローラーで実行されているオペレーティング システムのバージョンによって異なります。 現在サポートされているすべてのバージョンの Windows Server では、既定の TSL は 180 日です。
Note
ドメイン コントローラーを新しいバージョンの 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 | ローカル ドメイン コントローラーが最近、複数のドメイン コントローラーからレプリケーション情報を受信していません (概要)。 |
| 1,311 | ナレッジ整合性チェッカー (KCC) は、スパニング ツリー トポロジを構築できませんでした。 |
| 20:42 | このサーバーが名前付きソース サーバーで最後にレプリケートされてから長すぎます。 |
フォレストに残留オブジェクトがあることを示すイベント
| イベント ID | 一般的な説明 |
|---|---|
| 1084 | サーバーにそのようなオブジェクトはありません。 |
| 1388 | この移行先システムは、ローカルに存在するはずのオブジェクトの更新プログラムを受け取りましたが、存在しなかったオブジェクトの更新を受け取りました。 |
| 1,311 | 別のドメイン コントローラーが、このドメイン コントローラーに存在しないオブジェクトをレプリケートしました。 |
Note
- イベント ID 1988 をログに記録するドメイン コントローラーには、残留オブジェクトは存在しません。 ソース ドメイン コントローラーには、残留オブジェクトが含まれています。
- 残留オブジェクトの更新がドメイン コントローラー間でレプリケートされる場合、ドメイン コントローラーのイベント ログの動作は、残留オブジェクトを含むディレクトリ パーティションが書き込み可能かどうかによって異なります。 宛先ドメイン コントローラー上の残留オブジェクトが書き込み可能なパーティションに存在する場合、ドメイン コントローラーはイベントをログに記録します。 残留オブジェクトが読み取り専用パーティションに存在する場合、オブジェクトは更新できません。ドメイン コントローラーはイベントをログに記録しません。
フォレストに残留オブジェクトがあることを示す Repadmin エラー
| イベント ID | 一般的な説明 |
|---|---|
| 8240 | サーバーにそのようなオブジェクトはありません。 |
| 8,606 | オブジェクトを作成するための属性が不足していました。 |
フォレストに残留オブジェクトがあることを示すその他の表示
Microsoft Exchange Server グローバル アドレス一覧 (GAL) には、削除されたユーザーまたはグループ アカウントが含まれています。 この場合、アカウント名は GAL に表示されますが、ユーザーが電子メール メッセージを送信しようとするとエラーが発生します。
オブジェクトはフォレスト内で一意である必要がありますが、オブジェクト ピッカーまたは GAL にオブジェクトの複数のコピーが表示されます。 このような場合は、名前が変更された重複するオブジェクトが含まれる場合があります。 これらの重複するオブジェクトは、ディレクトリ検索を混乱させるものです。 たとえば、検索で 2 つのオブジェクトの相対識別名を解決できない場合、競合解決関数は名前の 1 つに
*CNF:<GUID>を追加します。 この例では、*は予約文字を表し、CNFは競合の解決を示す定数であり、<GUID>は objectGUID 属性値を表します。ユーザーは現在のアカウントを持っていますが、アカウントの名前が変更されました。 ユーザーは電子メール メッセージを受信しません。 ユーザー オブジェクト (現在のインスタンスと古いバージョン) の両方のインスタンスが GAL に表示されます。 両方のオブジェクトに同じメール アドレスがあるため、メール メッセージを配信できません。
存在しなくなったユニバーサル グループは、ユーザーのアクセス トークンに引き続き表示されます。 そのため、ユーザーは、そのユーザーが使用できないリソースにアクセスできる可能性があります。
新しいオブジェクトまたは Exchange メールボックスを作成することはできません。 ただし、フォレスト内にオブジェクトは表示されません。 エラー メッセージは、オブジェクトが既に存在することを報告します。
既存のオブジェクトの属性を使用する検索では、同じ名前を使用するオブジェクトの複数のコピーが誤って見つかる可能性があります。 ドメインから 1 つのオブジェクトが削除されましたが、そのオブジェクトは分離されたグローバル カタログ サーバーに残ります。
フォレストから残留オブジェクトを削除する
残留オブジェクトを削除するには、次のいずれかの方法を選択します。
方法 1: LOLv2 を使用する
残留オブジェクトを検出して削除する推奨される方法は、残留オブジェクトリキエーター v2 (LoLv2) を使用することです。 ツールをダウンロードするには、「 Lingering Object Liquidator (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 Consistencyの既定値は 0 (無効) になります。 この場合は、「 新しく昇格したドメイン コントローラーで厳密なレプリケーション整合性を有効にするの手順に従います。
Note
ドメイン またはフォレストの機能レベルを上げた場合、ドメイン コントローラーの Strict Replication Consistency 値は変更されません。
Strict Replication Consistencyを有効にするには、Repadmin を使用することをお勧めします。 これを行う方法の詳細については、次の記事を参照してください。
方法 2: コマンド ライン コマンドを使用してレプリケーションを確認する
repadmin /showrepl コマンドを使用してレプリケーションを確認するには、次の手順に従います。
コマンド プロンプト ウィンドウを開きます ( Start>Run を選択し、「 cmd」と入力し、 OK を選択します)。
コマンド プロンプトで次のコマンドを実行します。
repadmin /showrepl * /csv >showrepl.csvMicrosoft Excel で、 Showrepl.csv ファイルを開きます。
A + RPC 列と SMTP 列を選択し、Edit>Delete を選択します。
列ヘッダーのすぐ下にある行を選択し、 Windows>Freeze ウィンドウを選択します。
スプレッドシート全体を選択し、 Data>Filter>Auto-Filter を選択します。
[ Last Success 列の見出しで、下矢印を選択し、[昇順 並べ替え] を選択。
src DC 列の見出しで下矢印を選択し、Custom を選択します。
[Custom オートフィルター] ダイアログ ボックスで、[含まれていないを選択します。
[含まれていない ] の右側のボックスに「 del」と入力します。
Note
この手順により、削除されたドメイン コントローラーが結果に表示されなくなります。
[ Last Failure 列の見出しで下矢印を選択し、 Custom を選択します。
[ Custom オートフィルター ] ダイアログ ボックスで、[等しくない ] を選択。
の右側にあるボックスに「0>」と入力。
フィルター処理されたスプレッドシートでレプリケーションの失敗を確認します。 これらは、解決する必要がある問題です。
方法 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 Edit は、サーバー マネージャーの Tools メニューで使用できます。 TSL を変更するには、次の手順に従います。
- ADSI Edit で、フォレストの構成パーティションに接続します。 これを行うには、次の手順に従います。
- 左側のウィンドウで、 ADSI 編集を右クリックし、 Connect を選択します。
- Connection の設定で、よく知られている名前付けコンテキストの選択を選択し、構成を選択します。
- [OK] を選択します。
- ナビゲーション ツリーで、 CN=Configuration>CN=Services>CN=Windows NT>CN=Directory Service に移動します。
- CN=Directory Service を右クリックし、Properties を選択します。
- Attribute タブを選択します。
- 表示するプロパティの選択一覧で、[オプション] 選択。
- 表示するプロパティの選択一覧で、TombstoneLifetime を選択します。
- [属性の編集] ボックスに「180」と入力し、[Set] を選択し、[
OK] を選択 。
Microsoft サポートのデータの収集
Microsoft サポートのサポートが必要な場合は、Gather 情報に記載されている手順に従って、Active Directory レプリケーションの問題に TSS を使用して情報を収集することをお勧めします。