廃棄 (Tombstone) の有効期間切れからの強制同期
現象
このサーバーとの最後のレプリケーション以来、廃棄 (Tombstone) の有効期間を超えた時間がたっているため、
ディレクトリ サービスはサーバーでレプリケートできません。
前提
- srv1.example.com プライマリードメインコントローラー
- srv2.example.com 長期間稼働していなかったドメインコントローラー
解決手順
0. 強制同期の試行
repadmin /replicate srv2 srv1 dc=example,dc=com /full /force
=> srv1 から srv2 への同期を完了しました。
- 同期を完了しましたというメッセージを確認後、ADの状況を確認する。
- ADが同期されてなければ、1へ進み、さらに対応する。
1. 残留オブジェクトの削除
repadmin /showrepl /v srv1 # (1)
repadmin /removelingeringobjects srv2.example.com abc-123-xyz-456 dc=example,dc=com /advisory_mode #(2)
- (1)でコピー元のドメインコントローラーのGUIDを確認する(ここではabc-123-xyz-456)
- (2)でそのGUIDを指定して、srv2に対してrepadmin /removelingeringobjectsコマンドを実行する
2. レジストリの設定
- HKLM\System\CurrentControlSet\Services\NTDS\Parameters\Strict Replication Consistency を0にする
3. レプリケーションの再開
- srv2にログインして、レジストリエディターでHKLM/SYSTEM/CurrentControlSet/Services/NTDS/Parametersを開き、Allow Replication With Divergent and Corrupt Partnerという名前でREG_DWORDを新規作成し、値を1にする。
- srv1にログインして、管理ツールから「Active Directoryサイトとサービス」を起動する。
- 左ペインから"Sites"→"Default-First-Site-Name"→"Servers"→"srv2"→"NTDS Settings"を開き、右ペインにレプリケート元がsrv1になっている項目を確認する。
- その項目を右クリックし、「今すぐレプリケート」を実行する。
* 4. 同期の成功の確認
repadmin /showrepl /v srv1
repadmin /showrepl /v srv2
5. 後始末
- 2.で行ったレジストリの値を"1"に戻す
- 3.で行ったレジストリのAllow Replication With Divergent and Corrupt Partnerを削除する
参考