Attributi duplicati o non validi impediscono la sincronizzazione della directory in Microsoft 365

Sintomi

In Microsoft 365 un amministratore riceve il messaggio di posta elettronica seguente quando la sincronizzazione della directory termina:

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

La segnalazione degli errori nel messaggio di posta elettronica può contenere uno o più dei messaggi di errore seguenti:

  • Nella directory di Microsoft Online Services esiste già un oggetto sincronizzato con lo stesso indirizzo proxy.
  • Impossibile aggiornare questo oggetto perché l'ID utente non è stato trovato.
  • Impossibile aggiornare questo oggetto in Microsoft Online Services perché gli attributi seguenti associati a questo oggetto hanno valori che potrebbero essere già associati a un altro oggetto nella directory locale.
  • Impossibile aggiornare questo oggetto perché gli attributi seguenti associati a questo oggetto hanno valori che potrebbero essere già associati a un altro oggetto nei servizi directory locali: [UserPrincipalName john@contoso.com;]. Correggere o rimuovere i valori duplicati nella directory locale.
  • Impossibile aggiornare questo oggetto perché gli attributi seguenti associati a questo oggetto hanno valori che potrebbero essere già associati a un altro oggetto nei servizi directory locali: [ProxyAddresses SMTP:john@contoso.com;]. Correggere o rimuovere i valori duplicati nella directory locale.

Inoltre, se si esegue Microsoft Entra ID servizio di sincronizzazione (Connect), un'istanza dell'ID evento 6941 che contiene uno dei messaggi di errore seguenti viene registrata nella Visualizzatore eventi di accesso dell'applicazione:

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

Questo problema può verificarsi se gli oggetti utente nello schema Active Directory locale Domain Services (AD DS) hanno valori alias duplicati o non validi e se questi oggetti utente non vengono sincronizzati correttamente dallo schema di Active Directory Domain Services a Microsoft 365 durante la sincronizzazione della directory.

Tutti i valori alias in Microsoft 365 devono essere univoci per una determinata organizzazione. Anche se si dispone di più suffissi univoci dopo il segno di accesso (@) nell'indirizzo SMTP (Simple Mail Transfer Protocol), tutti i valori alias devono essere univoci.

In un ambiente locale, è possibile avere valori alias uguali, purché siano univoci in base ai suffissi dopo il segno di accesso (@) nell'indirizzo SMTP.

Se si creano oggetti con valori alias duplicati nel cloud per Microsoft 365, per rendere univoci gli alias, a un alias viene aggiunto un numero univoco. Ad esempio, se i valori alias duplicati sono "Albert", uno di essi diventa automaticamente "Albert2". Se "Albert2" è già in uso, l'alias diventa "Albert3" e così via. Tuttavia, se gli oggetti con valori alias duplicati vengono creati in Active Directory Domain Services locale, si verifica una collisione di oggetti quando viene eseguita la sincronizzazione della directory e la sincronizzazione degli oggetti ha esito negativo.

Soluzione

Per risolvere questo problema, determinare valori duplicati e valori in conflitto con altri oggetti di Active Directory Domain Services. A tale scopo, usare uno dei metodi seguenti.

Metodo 1: usare lo strumento di correzione degli errori dello strumento di sincronizzazione idFix Microsoft Entra

Usare idFix Microsoft Entra strumento di correzione degli errori dello strumento di sincronizzazione per identificare attributi duplicati o non validi. Per risolvere gli attributi duplicati tramite lo strumento IdFix, vedere l'articolo della Microsoft Knowledge Base seguente:

2857385 "Duplica" viene visualizzato nella colonna ERROR per due o più oggetti dopo l'esecuzione dello strumento IdFix

Metodo 2: Eseguire il mapping di un utente locale esistente a un utente Microsoft Entra

A tale scopo, vedere l'articolo della Microsoft Knowledge Base seguente:

2641663 Come usare la corrispondenza SMTP per associare gli account utente locali agli account utente di Microsoft 365 per la sincronizzazione della directory

Metodo 3: Determinare i conflitti di attributi causati da oggetti non creati in Microsoft Entra ID tramite la sincronizzazione della directory

Per determinare i conflitti di attributi causati da oggetti utente creati tramite gli strumenti di gestione di Microsoft 365 (e che non sono stati creati in Microsoft Entra ID tramite la sincronizzazione della directory), seguire questa procedura:

  1. Determinare gli attributi univoci dell'account utente di Active Directory Domain Services locale. A tale scopo, in un computer in cui sono installati strumenti di supporto di Windows, seguire questa procedura:

    1. Fare clic su Start, fare clic su Esegui, digitare ldp.exe e quindi fare clic su OK.

    2. Fare clic su Connessione, fare clic su Connetti, digitare il nome del computer di un controller di dominio Active Directory Domain Services e quindi fare clic su OK.

    3. Fare clic su Connessione, su Associa e quindi su OK.

    4. Fare clic su Visualizza, fare clic su Visualizzazione albero, selezionare il dominio di Active Directory Domain Services nell'elenco a discesa BaseDN e quindi fare clic su OK.

    5. Nel riquadro di spostamento individuare e quindi fare doppio clic sull'oggetto che non viene sincronizzato correttamente. Nel riquadro Dettagli a destra della finestra sono elencati tutti gli attributi dell'oggetto. L'esempio seguente mostra gli attributi dell'oggetto:

      Screenshot che mostra un esempio di attributi dell'oggetto.

    6. Registrare i valori dell'attributo userPrincipalName e di ogni indirizzo SMTP nell'attributo proxyAddresses multivalore. Questi valori saranno necessari in un secondo momento.

      Nome attributo Esempio Note
      Proxyaddresses proxyAddresses (3): x500:/o=Exchange/ou=Exchange Administrative Group (GroupName)/cn=Recipients/cn=GUID; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com; Il numero visualizzato tra parentesi accanto all'etichetta dell'attributo indica il numero di valori di indirizzo proxy nell'attributo multivalore. Ogni valore di indirizzo proxy distinto è indicato da un punto e virgola (;). Il valore dell'indirizzo proxy SMTP primario è indicato da "SMTP:" maiuscolo
      Userprincipalname 7628376@contoso.com

      Nota

      Ldp.exe è incluso in Windows Server 2008 e negli strumenti di supporto di Windows Server 2003. Gli strumenti di supporto di Windows Server 2003 sono inclusi nel supporto di installazione di Windows Server 2003. In alternativa, per ottenere lo strumento, passare al sito Web Microsoft seguente: Strumenti di supporto di Windows Server 2003 Service Pack 2 a 32 bit

  2. Connettersi a Microsoft 365 usando il modulo Azure Active Directory per Windows PowerShell. A tale scopo, seguire questa procedura:

    1. Fare clic sul pulsante Start, scegliere Tutti i programmi, Microsoft Entra ID e quindi fare clic su Modulo di Azure Active Directory per Windows PowerShell.

    2. Digitare i comandi seguenti nell'ordine in cui vengono presentati e premere INVIO dopo ogni comando:

      $cred = get-credential
      

      Nota

      Quando richiesto, immettere le credenziali di amministratore di Microsoft 365.

      Connect-MSOLService –credential $cred
      

      Nota

      I moduli di PowerShell di Azure AD e MSOnline sono deprecati a partire dal 30 marzo 2024. Per altre informazioni, vedere l'aggiornamento della deprecazione. Dopo questa data, il supporto per questi moduli è limitato all'assistenza per la migrazione a Microsoft Graph PowerShell SDK e alle correzioni per la sicurezza. I moduli deprecati continueranno a funzionare fino al 30 marzo 2025.

      È consigliabile eseguire la migrazione a Microsoft Graph PowerShell per interagire con Microsoft Entra ID (in precedenza Azure AD). Per domande frequenti sulla migrazione, vedere Domande frequenti sulla migrazione. Nota: Le versioni 1.0.x di MSOnline potrebbero verificarsi interruzioni dopo il 30 giugno 2024.

      Lasciare aperta la finestra della console. Sarà necessario usarlo nel passaggio successivo.

  3. Verificare la presenza di attributi userPrincipalName duplicati in Microsoft 365.

    Nella connessione alla console aperta nel passaggio 2 digitare i comandi seguenti nell'ordine in cui vengono presentati e premere INVIO dopo ogni comando:

    $userUPN = "<search UPN>"
    

    Nota

    In questo comando il segnaposto "search UPN" rappresenta l'attributo UserPrincipalName registrato nel passaggio 1f.

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

    Lasciare aperta la finestra della console. Verrà usato di nuovo nel passaggio successivo.

  4. Verificare la presenza di proxyAddressesattributes duplicati. Nella connessione alla console aperta nel passaggio 2 digitare i comandi seguenti nell'ordine in cui vengono presentati e premere INVIO dopo ogni comando:

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. Per ogni voce di indirizzo proxy registrata nel passaggio 1f, digitare i comandi seguenti nell'ordine in cui vengono presentati e premere INVIO dopo ogni comando:

    $proxyAddress = "<search proxyAddress>"
    

    Nota

    In questo comando il segnaposto "search proxyAddress" rappresenta il valore di un attributo proxyAddresses registrato nel passaggio 1f.

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

Gli elementi restituiti dopo l'esecuzione dei comandi nei passaggi 3 e 4 rappresentano oggetti utente non creati tramite la sincronizzazione della directory e con attributi in conflitto con l'oggetto che non viene sincronizzato correttamente.

Dopo aver determinato valori di attributo in conflitto o non validi, risolvere il problema seguendo la procedura descritta nell'articolo della Microsoft Knowledge Base seguente:

2643629 uno o più oggetti non vengono sincronizzati quando viene usato lo strumento di sincronizzazione di Azure Active Directory

Ulteriori informazioni

I comandi Windows PowerShell in questo articolo richiedono il modulo Azure Active Directory per Windows PowerShell. Per altre informazioni sul modulo di Azure Active Directory per Windows PowerShell, visitare il sito Web Microsoft seguente:

Cmdlet Microsoft Entra

Ulteriore assistenza Visitare la community Microsoft.