Los atributos duplicados o no válidos impiden la sincronización de directorios en Microsoft 365

Síntomas

En Microsoft 365, un administrador recibe la siguiente advertencia de mensaje de correo electrónico cuando finaliza la sincronización de directorios:

From: [MSOnlineServicesTeam@MicrosoftOnline.com](mailto:msonlineservicesteam@microsoftonline.com)Subject: Directory Synchronization Error Report

El informe de errores del mensaje de correo electrónico puede contener uno o varios de los siguientes mensajes de error:

  • Ya existe un objeto sincronizado con la misma dirección de proxy en el directorio de Microsoft Online Services.
  • No se puede actualizar este objeto porque no se encuentra el identificador de usuario.
  • No se puede actualizar este objeto en Microsoft Online Services porque los siguientes atributos asociados a este objeto tienen valores que pueden estar ya asociados a otro objeto en el directorio local.
  • No se puede actualizar este objeto porque los siguientes atributos asociados a este objeto tienen valores que ya pueden estar asociados a otro objeto en los servicios de directorio local: [UserPrincipalName john@contoso.com;]. Corrija o quite los valores duplicados en el directorio local.
  • No se puede actualizar este objeto porque los siguientes atributos asociados a este objeto tienen valores que ya pueden estar asociados a otro objeto en los servicios de directorio local: [ProxyAddresses SMTP:john@contoso.com;]. Corrija o quite los valores duplicados en el directorio local.

Además, si ejecuta Microsoft Entra ID (Connect) Sync Service, se registra una instancia del identificador de evento 6941 que contiene uno de los siguientes mensajes de error en el Visor de eventos de inicio de sesión de la aplicación:

Event ID: 6941
Log Name: Application
Source: ADSync
Level: Error
Details:
ECMA2 MA export run caused an error. 

Error Name: AttributeValueMustBeUnique
Error Detail: Unable to update this object because the following attributes associated with this object have values that may already be associated with another object in your local directory services: [UserPrincipalName john@contoso.com;]. Correct or remove the duplicate values in your local directory. Please refer to https://support.microsoft.com/kb/2647098 for more information on identifying objects with duplicate attribute values.
Event ID: 6941
Log Name: Application
Source: ADSync
Level: Error
Details:
ECMA2 MA export run caused an error.

Error Name: InvalidSoftMatch
Error Detail: Unable to update this object because the following attributes associated with this object have values that may already be associated with another object in your local directory services: [ProxyAddresses SMTP:john@contoso.com;]. Correct or remove the duplicate values in your local directory.

Causa

Este problema puede producirse si los objetos de usuario del esquema de Active Directory local Servicios de dominio (AD DS) tienen valores de alias duplicados o no válidos, y si estos objetos de usuario no se sincronizan del esquema de AD DS a Microsoft 365 correctamente durante la sincronización de directorios.

Todos los valores de alias de Microsoft 365 deben ser únicos para una organización determinada. Incluso si tiene varios sufijos únicos después del inicio de sesión (@) en la dirección del Protocolo simple de transferencia de correo (SMTP), todos los valores de alias deben ser únicos.

En un entorno local, puede tener valores de alias que sean los mismos siempre que sean únicos en función de los sufijos después del inicio de sesión (@) en la dirección SMTP.

Si crea objetos que tienen valores de alias duplicados en la nube para Microsoft 365, para que los alias sean únicos, un alias tiene un número único anexado. (Por ejemplo, si los valores de alias duplicados son "Albert", uno de ellos se convierte automáticamente en "Albert2". Si "Albert2" ya se está usando, el alias se convierte en "Albert3", etc.). Sin embargo, si se crean objetos que tienen valores de alias duplicados en AD DS local, se produce una colisión de objetos cuando se ejecuta la sincronización de directorios y se produce un error en la sincronización de objetos.

Solución

Para resolver este problema, determine valores duplicados y valores que entren en conflicto con otros objetos de AD DS. Para ello, use uno de los métodos siguientes.

Método 1: Usar la herramienta de corrección de errores de la herramienta de sincronización de Microsoft Entra IdFix

Use la herramienta de corrección de errores de la herramienta de sincronización de Microsoft Entra IdFix para identificar atributos duplicados o no válidos. Para resolver atributos duplicados mediante la herramienta IdFix, consulte el siguiente artículo de Microsoft Knowledge Base:

2857385 "Duplicado" se muestra en la columna ERROR para dos o más objetos después de ejecutar la herramienta IdFix.

Método 2: Asignar un usuario local existente a un usuario Microsoft Entra

Para ello, consulte el siguiente artículo de Microsoft Knowledge Base:

2641663 Uso de la coincidencia SMTP para hacer coincidir cuentas de usuario locales con cuentas de usuario de Microsoft 365 para la sincronización de directorios

Método 3: Determinar los conflictos de atributos causados por objetos que no se crearon en Microsoft Entra ID mediante la sincronización de directorios

Para determinar los conflictos de atributos causados por objetos de usuario creados mediante herramientas de administración de Microsoft 365 (y que no se crearon en Microsoft Entra ID mediante la sincronización de directorios), siga estos pasos:

  1. Determine los atributos únicos de la cuenta de usuario de AD DS local. Para ello, en un equipo que tenga instaladas las Herramientas de soporte técnico de Windows, siga estos pasos:

    1. Haga clic en Inicio, en Ejecutar, escriba ldp.exe y, a continuación, haga clic en Aceptar.

    2. Haga clic en Conexión, haga clic en Conectar, escriba el nombre de equipo de un controlador de dominio de AD DS y, a continuación, haga clic en Aceptar.

    3. Haga clic en Conexión, haga clic en Enlazary, a continuación, haga clic en Aceptar.

    4. Haga clic en Ver, haga clic en Vista de árbol, seleccione el dominio de AD DS en la lista desplegable BaseDN y, a continuación, haga clic en Aceptar.

    5. En el panel de navegación, busque y haga doble clic en el objeto que no se está sincronizando correctamente. En el panel Detalles del lado derecho de la ventana se enumeran todos los atributos de objeto. En el ejemplo siguiente se muestran los atributos de objeto:

      Captura de pantalla que muestra un ejemplo de atributos de objeto.

    6. Registre los valores del atributo userPrincipalName y cada dirección SMTP en el atributo proxyAddresses multivalor. Necesitará estos valores más adelante.

      Nombre del atributo Ejemplo Notas
      proxyAddresses proxyAddresses (3): x500:/o=Exchange/ou=Grupo administrativo de Exchange (GroupName)/cn=Recipients/cn=GUID; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com; El número que se muestra entre paréntesis junto a la etiqueta de atributo indica el número de valores de dirección de proxy en el atributo multivalor. Cada valor de dirección de proxy distinto se indica mediante un punto y coma (;). El valor de la dirección del proxy SMTP principal se indica mediante "SMTP:" en mayúsculas.
      userPrincipalName 7628376@contoso.com

      Nota:

      Ldp.exe se incluye en Windows Server 2008 y en las Herramientas de soporte técnico de Windows Server 2003. Las Herramientas de soporte técnico de Windows Server 2003 se incluyen en los medios de instalación de Windows Server 2003. O bien, para obtener la herramienta, vaya al siguiente sitio web de Microsoft: Herramientas de soporte técnico de Windows Server 2003 Service Pack 2 de 32 bits.

  2. Conéctese a Microsoft 365 mediante el módulo de Azure Active Directory para Windows PowerShell. Para hacerlo, siga estos pasos:

    1. Haga clic en Inicio, en Todos los programas, en Microsoft Entra ID y, a continuación, en Módulo de Azure Active Directory para Windows PowerShell.

    2. Escriba los siguientes comandos en el orden en que se presentan y presione Entrar después de cada comando:

      $cred = get-credential
      

      Nota:

      Cuando se le solicite, escriba sus credenciales de administrador de Microsoft 365.

      Connect-MSOLService –credential $cred
      

      Nota:

      Los módulos de PowerShell de Azure AD y MSOnline están en desuso a partir del 30 de marzo de 2024. Para obtener más información, lea la actualización de desuso. Después de esta fecha, la compatibilidad con estos módulos se limita a la ayuda de migración al SDK de PowerShell de Microsoft Graph y a las correcciones de seguridad. Los módulos en desuso seguirán funcionando hasta el 30 de marzo de 2025.

      Se recomienda migrar a Microsoft Graph PowerShell para interactuar con Microsoft Entra ID (anteriormente Azure AD). Para obtener preguntas comunes sobre la migración, consulte las Preguntas más frecuentes sobre la migración. Nota: Las versiones 1.0.x de MSOnline pueden experimentar interrupciones después del 30 de junio de 2024.

      Deje abierta la ventana de la consola. Tendrá que usarlo en el paso siguiente.

  3. Busque los atributos userPrincipalName duplicados en Microsoft 365.

    En la conexión de consola que abrió en el paso 2, escriba los siguientes comandos en el orden en que se presentan y presione Entrar después de cada comando:

    $userUPN = "<search UPN>"
    

    Nota:

    En este comando, el marcador de posición "buscar UPN" representa el atributo UserPrincipalName que registró en el paso 1f.

    get-msoluser –UserPrincipalName $userUPN | where {$_.LastDirSyncTime -eq $null}
    

    Deje abierta la ventana de la consola. Lo usará de nuevo en el paso siguiente.

  4. Compruebe si hay proxyAddressesattributes duplicado. En la conexión de consola que abrió en el paso 2, escriba los siguientes comandos en el orden en que se presentan y presione Entrar después de cada comando:

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. Para cada entrada de dirección de proxy que registró en el paso 1f, escriba los siguientes comandos en el orden en que se presentan y presione Entrar después de cada comando:

    $proxyAddress = "<search proxyAddress>"
    

    Nota:

    En este comando, el marcador de posición "search proxyAddress" representa el valor de un atributo proxyAddresses que registró en el paso 1f.

    Get-EXOMailbox | Where {[string] $str = ($_.EmailAddresses); $str.tolower().Contains($proxyAddress.tolower()) -eq $true} | foreach {get-MsolUser -ObjectID $_.ExternalDirectoryObjectId | Where {($_.LastDirSyncTime -eq $null)}}
    

Los elementos que se devuelven después de ejecutar los comandos en los pasos 3 y 4 representan objetos de usuario que no se crearon a través de la sincronización de directorios y que tienen atributos que entran en conflicto con el objeto que no se sincroniza correctamente.

Después de determinar los valores de atributo en conflicto o no válidos, solucione el problema siguiendo los pasos del siguiente artículo de Microsoft Knowledge Base:

2643629 Uno o varios objetos no se sincronizan cuando se usa la herramienta de sincronización de Azure Active Directory

Más información

Los comandos Windows PowerShell de este artículo requieren el módulo de Azure Active Directory para Windows PowerShell. Para obtener más información sobre el módulo de Azure Active Directory para Windows PowerShell, vaya al siguiente sitio web de Microsoft:

cmdlets de Microsoft Entra

¿Aún necesita ayuda? Visite Comunidad Microsoft.