Les attributs dupliqués ou non valides empêchent la synchronisation d’annuaires dans Microsoft 365

Symptômes

Dans Microsoft 365, un administrateur reçoit l’avertissement de message électronique suivant à la fin de la synchronisation d’annuaires :

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

Le rapport d’erreurs dans le message électronique peut contenir un ou plusieurs des messages d’erreur suivants :

  • Un objet synchronisé avec la même adresse proxy existe déjà dans votre répertoire Microsoft Online Services.
  • Impossible de mettre à jour cet objet, car l’ID utilisateur est introuvable.
  • Impossible de mettre à jour cet objet dans Microsoft Online Services, car les attributs suivants associés à cet objet ont des valeurs qui peuvent déjà être associées à un autre objet dans votre répertoire local.
  • Impossible de mettre à jour cet objet, car les attributs suivants associés à cet objet ont des valeurs qui peuvent déjà être associées à un autre objet dans vos services d’annuaire locaux : [UserPrincipalName john@contoso.com;]. Corrigez ou supprimez les valeurs dupliquées dans votre répertoire local.
  • Impossible de mettre à jour cet objet, car les attributs suivants associés à cet objet ont des valeurs qui peuvent déjà être associées à un autre objet dans vos services d’annuaire locaux : [ProxyAddresses SMTP :john@contoso.com;]. Corrigez ou supprimez les valeurs dupliquées dans votre répertoire local.

En outre, si vous exécutez Microsoft Entra ID (Connect) Sync Service, un instance de l’ID d’événement 6941 qui contient l’un des messages d’erreur suivants est enregistré dans le observateur d'événements de connexion à l’application :

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.

Cause

Ce problème peut se produire si les objets utilisateur dans le schéma Active Directory local Domain Services (AD DS) ont des valeurs d’alias dupliquées ou non valides, et si ces objets utilisateur ne sont pas correctement synchronisés entre le schéma AD DS et Microsoft 365 pendant la synchronisation d’annuaires.

Toutes les valeurs d’alias dans Microsoft 365 doivent être uniques pour un organization donné. Même si vous avez plusieurs suffixes uniques après le signe at (@) dans l’adresse SMTP (Simple Mail Transfer Protocol), toutes les valeurs d’alias doivent être uniques.

Dans un environnement local, vous pouvez avoir des valeurs d’alias identiques tant qu’elles sont uniques en fonction des suffixes après le signe at (@) dans l’adresse SMTP.

Si vous créez des objets qui ont des valeurs d’alias en double dans le cloud pour Microsoft 365, pour rendre les alias uniques, un alias a un numéro unique qui lui est ajouté. (Par exemple, si les valeurs d’alias en double sont « Albert », l’un d’eux devient automatiquement « Albert2 ». Si « Albert2 » est déjà utilisé, l’alias devient « Albert3 », et ainsi de suite.) Toutefois, si des objets qui ont des valeurs d’alias en double sont créés dans votre ad DS local, une collision d’objets se produit lors de l’exécution de la synchronisation d’annuaires et de l’échec de la synchronisation d’objets.

Solution

Pour résoudre ce problème, déterminez les valeurs et les valeurs en double qui entrent en conflit avec d’autres objets AD DS. Pour ce faire, utilisez l’une des méthodes suivantes.

Méthode 1 : Utiliser l’outil de correction des erreurs IdFix Microsoft Entra Synchronization Tool

Utilisez l’outil de correction d’erreur IdFix Microsoft Entra Synchronization Tool pour identifier les attributs dupliqués ou non valides. Pour résoudre les attributs en double à l’aide de l’outil IdFix, consultez l’article suivant de la Base de connaissances Microsoft :

2857385 « Dupliquer » s’affiche dans la colonne ERROR pour deux objets ou plus après l’exécution de l’outil IdFix

Méthode 2 : Mapper un utilisateur local existant à un utilisateur Microsoft Entra

Pour ce faire, consultez l’article suivant de la Base de connaissances Microsoft :

2641663 Comment utiliser la correspondance SMTP pour faire correspondre des comptes d’utilisateur locaux à des comptes d’utilisateur Microsoft 365 pour la synchronisation d’annuaires

Méthode 3 : Déterminer les conflits d’attributs causés par des objets qui n’ont pas été créés dans Microsoft Entra ID via la synchronisation d’annuaires

Pour déterminer les conflits d’attributs causés par des objets utilisateur créés à l’aide des outils de gestion Microsoft 365 (et qui n’ont pas été créés dans Microsoft Entra ID par le biais de la synchronisation d’annuaires), procédez comme suit :

  1. Déterminez les attributs uniques du compte d’utilisateur AD DS local. Pour ce faire, sur un ordinateur sur lequel les outils de support Windows sont installés, procédez comme suit :

    1. Cliquez sur Démarrer, sur Exécuter, tapez ldp.exe, puis cliquez sur OK.

    2. Cliquez sur Connexion, sur Se connecter, tapez le nom d’ordinateur d’un contrôleur de domaine AD DS, puis cliquez sur OK.

    3. Cliquez sur Connexion, sur Lier, puis sur OK.

    4. Cliquez sur Affichage, sur Arborescence, sélectionnez le domaine AD DS dans la liste déroulante BaseDN , puis cliquez sur OK.

    5. Dans le volet de navigation, recherchez et double-cliquez sur l’objet qui ne se synchronise pas correctement. Le volet Détails situé à droite de la fenêtre répertorie tous les attributs de l’objet. L’exemple suivant montre les attributs de l’objet :

      Capture d’écran montrant un exemple d’attributs d’objet.

    6. Enregistrez les valeurs de l’attribut userPrincipalName et de chaque adresse SMTP dans l’attribut proxyAddresses à valeurs multiples. Vous aurez besoin de ces valeurs ultérieurement.

      Nom de l’attribut Exemple Remarques
      proxyAddresses proxyAddresses (3) : x500 :/o=Exchange/ou=Groupe d’administration Exchange (GroupName)/cn=Recipients/cn=GUID ; smtp :7628376@service.contoso.com; SMTP :7628376@contoso.com; Le nombre affiché entre parenthèses en regard de l’étiquette d’attribut indique le nombre de valeurs d’adresse proxy dans l’attribut à valeurs multiples. Chaque valeur d’adresse proxy distincte est indiquée par un point-virgule (;). La valeur de l’adresse proxy SMTP principale est indiquée par « SMTP : » en majuscules
      userPrincipalName 7628376@contoso.com

      Remarque

      Ldp.exe est inclus dans Windows Server 2008 et dans les outils de support de Windows Server 2003. Les outils de support windows Server 2003 sont inclus dans le support d’installation de Windows Server 2003. Ou, pour obtenir l’outil, accédez au site web Microsoft suivant : Outils de support Windows Server 2003 Service Pack 2 32 bits

  2. Connectez-vous à Microsoft 365 à l’aide du module Azure Active Directory pour Windows PowerShell. Pour ce faire, procédez comme suit :

    1. Cliquez sur Démarrer, sur Tous les programmes, sur Microsoft Entra ID, puis sur Module Azure Active Directory pour Windows PowerShell.

    2. Tapez les commandes suivantes dans l’ordre dans lequel elles sont présentées, puis appuyez sur Entrée après chaque commande :

      $cred = get-credential
      

      Remarque

      Lorsque vous y êtes invité, entrez vos informations d’identification d’administrateur Microsoft 365.

      Connect-MSOLService –credential $cred
      

      Remarque

      Les modules PowerShell Azure AD et MSOnline sont déconseillés à compter du 30 mars 2024. Pour en savoir plus, lisez la mise à jour déconseillée. Après cette date, la prise en charge de ces modules est limitée à l’assistance à la migration vers le Kit de développement logiciel (SDK) Microsoft Graph PowerShell et aux correctifs de sécurité. Les modules déconseillés continueront de fonctionner jusqu’au 30 mars 2025.

      Nous vous recommandons de migrer vers Microsoft Graph PowerShell pour interagir avec Microsoft Entra ID (anciennement Azure AD). Pour les questions courantes sur la migration, reportez-vous au FAQ sur la migration. Note: Les versions 1.0.x de MSOnline peuvent être interrompues après le 30 juin 2024.

      Laissez la fenêtre de console ouverte. Vous devrez l’utiliser à l’étape suivante.

  3. Recherchez les attributs userPrincipalName en double dans Microsoft 365.

    Dans la connexion de console que vous avez ouverte à l’étape 2, tapez les commandes suivantes dans l’ordre dans lequel elles sont présentées, puis appuyez sur Entrée après chaque commande :

    $userUPN = "<search UPN>"
    

    Remarque

    Dans cette commande, l’espace réservé « search UPN » représente l’attribut UserPrincipalName que vous avez enregistré à l’étape 1f.

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

    Laissez la fenêtre de console ouverte. Vous l’utiliserez à nouveau à l’étape suivante.

  4. Recherchez les attributs proxyAddressesattributes en double. Dans la connexion de console que vous avez ouverte à l’étape 2, tapez les commandes suivantes dans l’ordre dans lequel elles sont présentées, puis appuyez sur Entrée après chaque commande :

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. Pour chaque entrée d’adresse proxy que vous avez enregistrée à l’étape 1f, tapez les commandes suivantes dans l’ordre dans lequel elles sont présentées, puis appuyez sur Entrée après chaque commande :

    $proxyAddress = "<search proxyAddress>"
    

    Remarque

    Dans cette commande, l’espace réservé « search proxyAddress » représente la valeur d’un attribut proxyAddresses que vous avez enregistré à l’étape 1f.

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

Les éléments retournés après l’exécution des commandes à l’étape 3 et 4 représentent des objets utilisateur qui n’ont pas été créés via la synchronisation d’annuaires et qui ont des attributs en conflit avec l’objet qui ne se synchronise pas correctement.

Après avoir déterminé des valeurs d’attribut en conflit ou non valides, résolvez le problème en suivant les étapes décrites dans l’article suivant de la Base de connaissances Microsoft :

2643629 Un ou plusieurs objets ne se synchronisent pas lorsque l’outil de synchronisation Azure Active Directory est utilisé

Informations supplémentaires

Les commandes Windows PowerShell de cet article nécessitent le module Azure Active Directory pour Windows PowerShell. Pour plus d’informations sur le module Azure Active Directory pour Windows PowerShell, accédez au site web Microsoft suivant :

applets de commande Microsoft Entra

Encore besoin d’aide ? Accédez à Microsoft Community.