Isso levará algum tempo para corrigir.
Para interromper toda a replicação, execute:
repadmin /options +DISABLE_OUTBOUND_REPL
Em todos os DCs. Lembre-se de que a configuração acima não impede ações de replicação manual, como um admin (você) executando repadmin /syncall /APed
, etc. Mas isso é bom porque permite que todos os seus DCs sejam totalmente sincronizados antes de reativar a replicação regular.
O Repadmin determina que é um objeto persistente se o objeto existir no Servidor A, mas não no Servidor B, onde o ServidorB é o DC de referência. A diferença entre replicar objetos recém-criados e replicar atualizações para objetos já existentes é a chave. Replicando objetos recém-criados = bom. Replicação de atualizações para objetos já existentes = bom. Replicação de atualizações para objetos que não existem no destino DC = ruim.
Você só precisa ensaboar, enxaguar, repetir até que todos os DCs combinem com o seu único CD de referência. Em seguida, ative a consistência estrita em todos os lugares e reative a replicação. Sim, você corre o risco de excluir objetos legítimos que foram criados em outros DCs remotos que não foram replicados para o DC de referência.
Do ótimo " Como funciona o modelo de replicação do Active Directory "artigo:
Replication Consistency Setting
If the attributes on a lingering object never change, the object is never considered for replication. However, if an attribute changes, the attribute is considered for outbound replication. Because the destination domain controller does not hold the object for the attribute that is being replicated, an update cannot be performed. How this condition is resolved depends on the replication consistency setting on the domain controller.
A registry setting on domain controllers that are running Windows Server 2003 or Windows 2000 Server with SP3 provides a consistency value that determines whether a domain controller replicates and reanimates an updated object that has been deleted from all other replicas, or whether replication of such objects is blocked. The default settings are different on domain controllers that are running Windows 2000 Server with SP3 and Windows Server 2003.
Strict Replication Consistency
To avoid problems with reanimating objects that have been deleted, a domain controller that is running Windows Server 2003 in a newly created (not upgraded) Windows Server 2003 forest blocks inbound replication by default when it receives an update to an object that it does not have.
Note • Active Directory replication uses update tracking to differentiate between replicating a newly created object and updating an attribute for an existing object. Replication of a lingering object is an attempt to update an attribute or attributes of an object that the destination domain controller cannot update because the object does not exist.
Replication is halted in the directory partition for the object until the lingering object is removed from the source domain controller or the strict replication consistency setting is disabled.
Quando ServerB diz ao ServerA: "Ei, algumas atualizações foram feitas para o objeto existente." Então ServerA diz: "Espere o quê? Eu nem sequer tenho o objeto A. Envie-me o objeto inteiro!" Se não há consistência estrita. Se consistência estrita, ServerA diz: "Espere o que? Como você espera que eu atualize um objeto que não existe? Vá se curvar!"
Para descobrir se você tem objetos remanescentes em um controlador de domínio:
repadmin /removelingeringobjects ServerName ServerGUID DirectoryPartition /advisory_mode
ServerGUID é a boa referência DC conhecida. Eu sei que você já sabe disso ... e como fazer o script da linha acima para executá-lo em todos os DCs ... ( foreach ($DC In $(Get-ADDomain).ReplicaDirectoryServers) { }
) ...
Você precisa de uma boa fonte DC para comparar com a linha inferior. Se você não tem uma DC de boa fonte conhecida ou não sabe, basta escolher uma. Deve ser um GC gravável, é claro. É relativo - se todos os controladores de domínio concordarem com a existência de um objeto e os atributos desse objeto ... então não é um objeto persistente.
foreach($GC In $(Get-ADForest).GlobalCatalogs) { repadmin /removelingeringobjects $_.name 85d158d2-a006-4fff-b1e5-f9b6eaabab2b '$directoryPartition'
Isso é ressincronizar essa partição de diretório de cada GC na floresta com a fonte boa conhecida que você precisa especificar como o GUID.
Então, depois que você tiver todos os seus controladores de domínio novamente em acordo, e a replicação for feliz ... então você começa a usar a consistência estrita em todos eles.
Editar: Este é a linha do partido da Microsoft no questão, e o que eles provavelmente vão falar com você através de você para chamá-los.
Por fim, isso pode ser mais difícil de consertar do que valer a pena, a menos que esteja causando problemas. Eu odeio dizer isso, mas o AD ainda pode funcionar normalmente com objetos remanescentes.