Atributos duplicados ou inválidos impedem a sincronização de diretórios no Microsoft 365

Sintomas

No Microsoft 365, um administrador recebe o seguinte aviso de mensagem de e-mail quando a sincronização de diretórios é concluída:

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

O relatório de erros na mensagem de e-mail pode conter uma ou mais das seguintes mensagens de erro:

  • Já existe um objeto sincronizado com o mesmo endereço proxy no seu diretório do Microsoft Online Services.
  • Não é possível atualizar este objeto porque o ID de utilizador não foi encontrado.
  • Não é possível atualizar este objeto no Microsoft Online Services porque os seguintes atributos associados a este objeto têm valores que podem já estar associados a outro objeto no diretório local.
  • Não é possível atualizar este objeto porque os seguintes atributos associados a este objeto têm valores que podem já estar associados a outro objeto nos seus serviços de diretório local: [UserPrincipalName john@contoso.com;]. Corrija ou remova os valores duplicados no diretório local.
  • Não é possível atualizar este objeto porque os seguintes atributos associados a este objeto têm valores que podem já estar associados a outro objeto nos seus serviços de diretório local: [ProxyAddresses SMTP:john@contoso.com;]. Corrija ou remova os valores duplicados no diretório local.

Além disso, se estiver a executar Microsoft Entra ID (Connect) Sync Service, é registada uma instância do ID de evento 6941 que contém uma das seguintes mensagens de erro na Visualizador de Eventos de início de sessão da Aplicação:

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 pode ocorrer se os objetos de utilizador no esquema do Active Directory no local Domain Services (AD DS) tiverem valores de alias duplicados ou inválidos e se estes objetos de utilizador não forem sincronizados corretamente do esquema do AD DS com o Microsoft 365 durante a sincronização de diretórios.

Todos os valores de alias no Microsoft 365 têm de ser exclusivos para uma determinada organização. Mesmo que tenha vários sufixos exclusivos após o sinal de arroba (@) no endereço SMTP (Simple Mail Transfer Protocol), todos os valores de alias têm de ser exclusivos.

Num ambiente no local, pode ter valores de alias iguais, desde que sejam exclusivos com base nos sufixos após o sinal de arroba (@) no endereço SMTP.

Se criar objetos com valores de alias duplicados na cloud para o Microsoft 365, para tornar os aliases exclusivos, um alias tem um número exclusivo acrescentado. (Por exemplo, se os valores de alias duplicados forem "Albert", um deles torna-se "Albert2" automaticamente. Se "Albert2" já estiver a ser utilizado, o alias torna-se "Albert3" e assim sucessivamente.) No entanto, se forem criados objetos com valores de alias duplicados no AD DS no local, ocorrerá uma colisão de objetos quando a sincronização de diretórios é executada e a sincronização de objetos falha.

Solução

Para resolver este problema, determine valores e valores duplicados que entrem em conflito com outros objetos do AD DS. Para tal, utilize um dos seguintes métodos.

Método 1: Utilizar a Ferramenta de Remediação de Erros da Ferramenta de Sincronização do IdFix Microsoft Entra

Utilize a Ferramenta de Remediação de Erros da Ferramenta de Sincronização do IdFix Microsoft Entra para identificar atributos duplicados ou inválidos. Para resolver atributos duplicados com a Ferramenta IdFix, veja o seguinte artigo da Base de Dados de Conhecimento Microsoft:

2857385 "Duplicate" é apresentado na coluna ERROR para dois ou mais objetos depois de executar a ferramenta IdFix

Método 2: Mapear um utilizador no local existente para um utilizador Microsoft Entra

Para tal, consulte o seguinte artigo da Base de Dados de Conhecimento Microsoft:

2641663 Como utilizar a correspondência SMTP para corresponder contas de utilizador no local a contas de utilizador do Microsoft 365 para sincronização de diretórios

Método 3: Determinar conflitos de atributos causados por objetos que não foram criados no Microsoft Entra ID através da sincronização de diretórios

Para determinar conflitos de atributos causados por objetos de utilizador que foram criados com ferramentas de gestão do Microsoft 365 (e que não foram criados no Microsoft Entra ID através da sincronização de diretórios), siga estes passos:

  1. Determine os atributos exclusivos da conta de utilizador do AD DS no local. Para tal, num computador com as Ferramentas de Suporte do Windows instaladas, siga estes passos:

    1. Clique em Iniciar, clique em Executar, escreva ldp.exe e, em seguida, clique em OK.

    2. Clique em Ligação, clique em Ligar, escreva o nome do computador de um controlador de domínio do AD DS e, em seguida, clique em OK.

    3. Clique em Ligação, clique em Vincular e, em seguida, clique em OK.

    4. Clique em Ver, clique em Vista de Árvore, selecione o domínio do AD DS na lista pendente BaseDN e, em seguida, clique em OK.

    5. No painel de navegação, localize e, em seguida, faça duplo clique no objeto que não está a sincronizar corretamente. O painel Detalhes no lado direito da janela apresenta uma lista de todos os atributos do objeto. O exemplo seguinte mostra os atributos do objeto:

      Captura de ecrã a mostrar um exemplo de atributos de objetos.

    6. Registe os valores do atributo userPrincipalName e cada endereço SMTP no atributo proxyAddresses de múltiplos valores. Irá precisar destes valores mais tarde.

      Nome do atributo Exemplos: Notas
      proxyAddresses proxyAddresses (3): x500:/o=Exchange/ou=Grupo Administrativo do Exchange (GroupName)/cn=Recipients/cn=GUID; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com; O número que é apresentado entre parênteses junto à etiqueta do atributo indica o número de valores de endereço proxy no atributo de valores múltiplos. Cada valor de endereço proxy distinto é indicado por um ponto e vírgula (;). O valor de endereço do proxy SMTP principal é indicado por "SMTP:" em maiúsculas
      userPrincipalName 7628376@contoso.com

      Nota

      Ldp.exe está incluído no Windows Server 2008 e nas Ferramentas de Suporte do Windows Server 2003. As Ferramentas de Suporte do Windows Server 2003 estão incluídas no suporte de dados de instalação do Windows Server 2003. Em alternativa, para obter a ferramenta, aceda ao seguinte site da Microsoft: Ferramentas de Suporte do Windows Server 2003 Service Pack 2 de 32 bits

  2. Ligue-se ao Microsoft 365 com o módulo do Azure Active Directory para Windows PowerShell. Para o fazer, siga estes passos:

    1. Clique em Iniciar, clique em Todos os Programas, clique em Microsoft Entra ID e, em seguida, clique em Módulo do Azure Active Directory para Windows PowerShell.

    2. Escreva os seguintes comandos pela ordem em que são apresentados e prima Enter após cada comando:

      $cred = get-credential
      

      Nota

      Quando lhe for pedido, introduza as suas credenciais de administrador do Microsoft 365.

      Connect-MSOLService –credential $cred
      

      Nota

      Azure AD e os módulos do PowerShell do MSOnline são preteridos a partir de 30 de março de 2024. Para saber mais, leia a atualização de preterição. Após esta data, o suporte para estes módulos está limitado à assistência de migração para o SDK do PowerShell do Microsoft Graph e correções de segurança. Os módulos preteridos continuarão a funcionar até 30 de março de 2025.

      Recomendamos que migre para o Microsoft Graph PowerShell para interagir com Microsoft Entra ID (anteriormente Azure AD). Para perguntas de migração comuns, veja as FAQ sobre Migração. Nota: As versões 1.0.x do MSOnline podem sofrer interrupções após 30 de junho de 2024.

      Deixe a janela da consola aberta. Terá de utilizá-lo no próximo passo.

  3. Verifique se existem atributos userPrincipalName duplicados no Microsoft 365.

    Na ligação da consola que abriu no passo 2, escreva os seguintes comandos pela ordem em que são apresentados e prima Enter após cada comando:

    $userUPN = "<search UPN>"
    

    Nota

    Neste comando, o marcador de posição "UPN de pesquisa" representa o atributo UserPrincipalName que registou no passo 1f.

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

    Deixe a janela da consola aberta. Irá utilizá-lo novamente no próximo passo.

  4. Verifique se existem proxyAddressesattributes duplicados. Na ligação da consola que abriu no passo 2, escreva os seguintes comandos pela ordem em que são apresentados e prima Enter após cada comando:

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. Para cada entrada de endereço proxy que registou no passo 1f, escreva os seguintes comandos pela ordem em que são apresentados e prima Enter após cada comando:

    $proxyAddress = "<search proxyAddress>"
    

    Nota

    Neste comando, o marcador de posição "search proxyAddress" representa o valor de um atributo proxyAddresses que registou no passo 1f.

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

Os itens devolvidos após executar os comandos nos passos 3 e 4 representam objetos de utilizador que não foram criados através da sincronização de diretórios e que têm atributos que entram em conflito com o objeto que não está a sincronizar corretamente.

Depois de determinar valores de atributo inválidos ou em conflito, resolva o problema ao seguir os passos no seguinte artigo da Base de Dados de Conhecimento Microsoft:

2643629 um ou mais objetos não são sincronizados quando a ferramenta de Sincronização do Azure Active Directory é utilizada

Mais informações

Os comandos Windows PowerShell neste artigo requerem o módulo do Azure Active Directory para Windows PowerShell. Para obter mais informações sobre o módulo do Azure Active Directory para Windows PowerShell, aceda ao seguinte site da Microsoft:

Cmdlets do Microsoft Entra

Ainda necessita de ajuda? Vá para Comunidade Microsoft