¿Que son los objetos CNF?

Por: Sebastian del Rio, Revisión: Diana Hernandez

Duplicación de Objetos en AD. Evento 12292.

Si un objeto es creado en un domain controller y un objeto con el mismo nombre es creado en otra OU o otro Domain Controller antes de efectuar la replicación, se creara un Objeto de colisión de Nombres, el cual podremos identificar ya que tendrá un formato parecido al siguiente:

CNF:guid

Que es lo que sucede cuando se detecta la colisión de nombres?

Active directory cambiará el DN (Distinguished name) del objeto con el TimeStamp más antiguo y lo renombrara poniendo el sufijo CNF seguido del GUID del objeto.

Este procedimiento causara un error 12292 en el Log de SISTEMA de nuestro domain controller.

Para solucionar este inconveniente deberemos limpiar nuestro Active Directory de objetos duplicados.

Solución

- Lo primero que deberemos hacer es identificar las cuentas duplicadas (Las cuales pueden ser cuentas de usuario o bien cuentas de computadoras incluyendo Controladores de Dominio) para lo cual precisaremos ver todos los eventos 12292. En el siguiente ejemplo vemos que el objeto sdelrio se encuentra duplicado, por lo cual ya tenemos nuestro primer objeto.

Event Type: Error
Event Source: SAM
Event Category: None
Event ID: 12292
Date: 4/13/2009
Time: 10:29:52 AM
User: MSFT\sdelrio
Description:

There are two or more objects that have the same account name attribute in the SAM database. The Distinguished Name of the account is CN=Sebastian del Rio ,OU=Users A,DC=msft,DC=local, Please contact your system administrator to have all duplicate accounts deleted, but ensure that the original account remains. For computer accounts, the most recent account should be retained. In all the other cases, the older account should be kept.

  • Abriremos nuestra consola de Active Directory Users and Computers.
  • Iremos al nombre de dominio en el menú contextual seleccionaremos Buscar
  • Buscaremos el nombre de la cuenta
  • Si todo sale bien podremos ver nuestro objeto duplicado, en este punto solo deberemos borrar el objeto duplicado.

- ¿Qué sucede si la cuenta es una cuenta de computadora?
Para eso podremos seguir el siguiente artículo el cual describe el procedimiento para renombrar esa máquina, o simplemente podemos borrar el objeto duplicado de la misma manera que lo hicimos con la cuenta de usuario.

Cuenta de Computadora de un Domain Controller Duplicada

Si la cuenta duplicada que precisamos borrar es una cuenta de un controlador de dominio probablemente obtengamos el siguiente error “THE DSA OBJECT CANNOT BE DELETED”, al intentar borrarla. El error se debe a que la cuenta a pesar de estar duplicada sigue siendo una cuenta de controlador de dominio por lo cual no puede ser borrada.

Como sabemos en Active directory que la cuenta seleccionada es un domain controller?

Se logra mediante el valor de la propiedad del objeto llamada UserAccountControl.

Nota: No nos referimos a la característica que se introdujo en Windows Server 2008 y Windows Vista llamada de igual manera: User Account Control.

El atributo UserAccountControl puede ser chequeado utilizando LDP.exe o bien ADSIEDIT. La diferencia entra ambos es que en LDP veremos el valor en hexadecimal y en adsiedit podremos ver el valor en decimal. Los siguientes son los valores default para ciertos objetos.

  • Typical user : 0x200 (512)
  • Domain controller : 0x82000 (532480)
  • Workstation/server: 0x1000 (4096)

En nuestro caso siempre que el valor sea 532480 la cuenta de maquina será vista como un Domain controller por AD, en ese caso solo deberemos cambiar este valor por 4096 en la cuenta duplicada. Luego de este cambio podremos borrar el objeto sin inconveniente.

Para cambiar el valor deberemos seguir los siguientes pasos

  1. Abrir Adsiedit.msc
  2. Ir a la Partición <Dominio> y seleccionar la OU “Domain Controllers”
  3. Seleccionaremos el objeto duplicado el cual distinguiremos ya que tendrá el formato CNF de colisión de nombres.
  4. Sobre el objeto, seleccionaremos botón derecho y Propiedades.
  5. En las propiedades del objeto buscaremos el valor UserAccountControl y lo cambiaremos por 4096.

Forzaremos la replicación utilizando replmon y veremos si los eventos 12292 se siguen generando en el log de sistemas.

Notas Relacionadas: