Это займет некоторое время, чтобы исправить.
Чтобы остановить всю репликацию, запустите:
repadmin /options +DISABLE_OUTBOUND_REPL
На всех ДК. Помните, что вышеуказанный параметр не препятствует выполнению действий репликации вручную, таких как запуск администратора (вас) repadmin /syncall /APed
и т. Д. Но это хорошо, поскольку он позволяет полностью синхронизировать все ваши контроллеры домена перед повторным включением регулярной репликации.
Repadmin определяет, что это длительный объект, если этот объект существует на ServerA, но не на ServerB, где ServerB является эталонным DC. Разница между репликацией вновь созданных объектов и репликацией обновлений на уже существующие объекты является ключевой. Репликация вновь созданных объектов = хорошо. Репликация обновлений на уже существующие объекты = хорошо. Репликация обновлений для объектов, которые не существуют на DC назначения = плохая.
Вам нужно только вспенить, промыть, повторить, пока все контроллеры домена не совпадут с одним хорошим эталонным. Затем везде включите строгую согласованность, затем снова включите репликацию. Да, вы рискуете удалить легитимные объекты, созданные на других удаленных контроллерах домена, которые не были реплицированы на ваш эталонный контроллер домена.
Из замечательной статьи « Как работает модель репликации Active Directory »:
Настройка согласованности репликации
Если атрибуты устаревшего объекта никогда не изменяются, объект никогда не рассматривается для репликации. Однако если атрибут изменяется, он рассматривается для исходящей репликации. Поскольку целевой контроллер домена не содержит объект для реплицируемого атрибута, обновление не может быть выполнено. Способ устранения этого условия зависит от параметра согласованности репликации на контроллере домена.
Параметр реестра на контроллерах домена под управлением Windows Server 2003 или Windows 2000 Server с пакетом обновления 3 (SP3) предоставляет значение согласованности, которое определяет, реплицирует ли контроллер домена и реанимирует ли обновленный объект, который был удален из всех других реплик, или репликация таких объектов. заблокирован. Настройки по умолчанию отличаются на контроллерах домена, работающих под управлением Windows 2000 Server с пакетом обновления 3 (SP3) и Windows Server 2003.
Строгая согласованность репликации
Чтобы избежать проблем с реанимированием удаленных объектов, контроллер домена, работающий под управлением Windows Server 2003 во вновь созданном (не обновленном) лесу Windows Server 2003, по умолчанию блокирует входящую репликацию, когда получает обновление объекта, которого у него нет. ,
Примечание • Репликация Active Directory использует отслеживание обновлений, чтобы различать репликацию вновь созданного объекта и обновление атрибута для существующего объекта. Репликация устаревшего объекта - это попытка обновить атрибут или атрибуты объекта, которые не может обновить контроллер домена назначения, поскольку объект не существует.
Репликация останавливается в разделе каталога для объекта до тех пор, пока устаревший объект не будет удален с исходного контроллера домена или не будет отключен параметр строгой согласованности репликации.
Когда ServerB говорит ServerA: «Эй, некоторые обновления были сделаны для существующего объекта A». Затем ServerA говорит: «Подождите, что? У меня даже нет объекта A вообще. Отправьте мне весь объект!» Если нет строгой последовательности. При строгой согласованности ServerA говорит: «Подождите, что? Как вы ожидаете, что я обновлю объект, который не существует?
Чтобы выяснить, есть ли на контроллере домена устаревшие объекты:
repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode
ServerGUID является известным хорошим эталонным DC. Я знаю, что вы уже знаете это ... и как написать скрипт для запуска этой строки на всех контроллерах домена ... ( foreach ($DC In $(Get-ADDomain).ReplicaDirectoryServers) { }
) ...
Вам нужен хороший источник DC для сравнения, в нижней строке. Если у вас нет известного источника постоянного тока или вы не знаете, вам просто нужно выбрать один. Это должен быть записываемый GC, конечно. Это относительно - если все контроллеры домена согласны с существованием объекта и атрибутов этого объекта ... тогда это не длительный объект.
foreach($GC In $(Get-ADForest).GlobalCatalogs) { repadmin /removelingeringobjects $_.name 85d158d2-a006-4fff-b1e5-f9b6eaabab2b '$directoryPartition'
Это повторно синхронизирует тот раздел каталога каждого GC в лесу с известным хорошим источником, который нужно указать в качестве GUID.
Затем, после того, как все контроллеры домена снова согласны, и репликация счастлива ... тогда вы начинаете проверять строгую согласованность всех из них.
Изменить: Это партийная линия Microsoft по этому вопросу, и то, что они, вероятно, обсудят вас, если вы позвоните им.
Наконец, это может быть больше проблем, чем стоит, если только это не доставляет вам проблем. Ненавижу это говорить, но AD все еще может нормально функционировать с затянувшимися объектами.