Zduplikowane lub nieprawidłowe atrybuty uniemożliwiają synchronizację katalogów w usłudze Microsoft 365

Symptomy

W usłudze Microsoft 365 administrator otrzymuje następujące ostrzeżenie e-mail z ostrzeżeniem po zakończeniu synchronizacji katalogów:

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

Raport o błędach w wiadomości e-mail może zawierać co najmniej jeden z następujących komunikatów o błędach:

  • Zsynchronizowany obiekt o tym samym adresie proxy już istnieje w katalogu usług Microsoft Online Services.
  • Nie można zaktualizować tego obiektu, ponieważ nie znaleziono identyfikatora użytkownika.
  • Nie można zaktualizować tego obiektu w usługach Microsoft Online Services, ponieważ następujące atrybuty skojarzone z tym obiektem mają wartości, które mogą być już skojarzone z innym obiektem w katalogu lokalnym.
  • Nie można zaktualizować tego obiektu, ponieważ następujące atrybuty skojarzone z tym obiektem mają wartości, które mogą być już skojarzone z innym obiektem w lokalnych usługach katalogowych: [UserPrincipalName john@contoso.com;]. Popraw lub usuń zduplikowane wartości w katalogu lokalnym.
  • Nie można zaktualizować tego obiektu, ponieważ następujące atrybuty skojarzone z tym obiektem mają wartości, które mogą być już skojarzone z innym obiektem w lokalnych usługach katalogowych: [ProxyAddresses SMTP:john@contoso.com;]. Popraw lub usuń zduplikowane wartości w katalogu lokalnym.

Ponadto jeśli korzystasz z usługi synchronizacji Tożsamość Microsoft Entra (Connect), wystąpienie zdarzenia o identyfikatorze 6941, które zawiera jeden z następujących komunikatów o błędach, jest rejestrowane w Podgląd zdarzeń logowania aplikacji:

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.

Przyczyna

Ten problem może wystąpić, jeśli obiekty użytkownika w schemacie lokalna usługa Active Directory Domain Services (AD DS) mają zduplikowane lub nieprawidłowe wartości aliasu, a te obiekty użytkownika nie są poprawnie synchronizowane ze schematu usług AD DS z usługą Microsoft 365 podczas synchronizacji katalogów.

Wszystkie wartości aliasu w usłudze Microsoft 365 muszą być unikatowe dla danej organizacji. Nawet jeśli masz wiele unikatowych sufiksów po znaku at (@) w adresie SMTP (Simple Mail Transfer Protocol), wszystkie wartości aliasu muszą być unikatowe.

W środowisku lokalnym możesz mieć takie same wartości aliasu, o ile są unikatowe na podstawie sufiksów po znaku at (@) w adresie SMTP.

Jeśli utworzysz obiekty, które mają zduplikowane wartości aliasu w chmurze dla platformy Microsoft 365, aby aliasy były unikatowe, jeden alias ma dołączony unikatowy numer. (Jeśli na przykład zduplikowane wartości aliasu to "Albert", jedna z nich automatycznie staje się "Albert2". Jeśli "Albert2" jest już używany, alias staje się "Albert3" itd.) Jeśli jednak obiekty, które mają zduplikowane wartości aliasu, zostaną utworzone w lokalnych usługach AD DS, podczas synchronizacji katalogów wystąpi kolizja obiektów, a synchronizacja obiektów zakończy się niepowodzeniem.

Rozwiązanie

Aby rozwiązać ten problem, określ zduplikowane wartości i wartości powodujące konflikt z innymi obiektami usług AD DS. W tym celu użyj jednej z następujących metod.

Metoda 1. Używanie narzędzia do korygowania błędów narzędzia synchronizacji Microsoft Entra IdFix

Użyj narzędzia do korygowania błędów narzędzia synchronizacji IdFix Microsoft Entra, aby zidentyfikować zduplikowane lub nieprawidłowe atrybuty. Aby rozwiązać problemy z zduplikowanymi atrybutami przy użyciu narzędzia IdFix, zobacz następujący artykuł z bazy wiedzy Microsoft Knowledge Base:

2857385 "Duplikat" jest wyświetlany w kolumnie ERROR dla co najmniej dwóch obiektów po uruchomieniu narzędzia IdFix

Metoda 2. Mapowanie istniejącego użytkownika lokalnego na użytkownika Microsoft Entra

Aby to zrobić, zobacz następujący artykuł z bazy wiedzy Microsoft Knowledge Base:

2641663 How to use SMTP matching to match on-premises user accounts to Microsoft 365 user accounts for directory synchronization (Jak używać dopasowywania SMTP do kont użytkowników lokalnych do kont użytkowników platformy Microsoft 365 na potrzeby synchronizacji katalogów)

Metoda 3. Określanie konfliktów atrybutów, które są spowodowane przez obiekty, które nie zostały utworzone w Tożsamość Microsoft Entra za pomocą synchronizacji katalogów

Aby określić konflikty atrybutów spowodowane przez obiekty użytkowników utworzone przy użyciu narzędzi do zarządzania platformy Microsoft 365 (które nie zostały utworzone w Tożsamość Microsoft Entra za pomocą synchronizacji katalogów), wykonaj następujące kroki:

  1. Określ unikatowe atrybuty lokalnego konta użytkownika usług AD DS. Aby to zrobić, na komputerze z zainstalowanymi narzędziami pomocy technicznej systemu Windows wykonaj następujące kroki:

    1. Kliknij przycisk Start, kliknij przycisk Uruchom, wpisz ldp.exe, a następnie kliknij przycisk OK.

    2. Kliknij pozycję Połączenie, kliknij przycisk Połącz, wpisz nazwę komputera kontrolera domeny usług AD DS, a następnie kliknij przycisk OK.

    3. Kliknij pozycję Połączenie, kliknij pozycję Powiązanie, a następnie kliknij przycisk OK.

    4. Kliknij pozycję Widok, kliknij pozycję Widok drzewa, wybierz domenę usług AD DS z listy rozwijanej BaseDN , a następnie kliknij przycisk OK.

    5. W okienku nawigacji znajdź, a następnie kliknij dwukrotnie obiekt, który nie jest poprawnie synchronizowany. Okienko Szczegóły po prawej stronie okna zawiera listę wszystkich atrybutów obiektu. W poniższym przykładzie przedstawiono atrybuty obiektu:

      Zrzut ekranu przedstawia przykład atrybutów obiektu.

    6. Zapisz wartości atrybutu userPrincipalName i każdy adres SMTP w atrybutie multivalue proxyAddresses. Te wartości będą potrzebne później.

      Nazwa atrybutu Przykład Uwagi
      Proxyaddresses proxyAddresses (3): x500:/o=Exchange/ou=Exchange Administrative Group (GroupName)/cn=Recipients/cn=GUID; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com; Liczba wyświetlana w nawiasach obok etykiety atrybutu wskazuje liczbę wartości adresu serwera proxy w atrybucie wielowartościowym. Każda unikatowa wartość adresu serwera proxy jest wskazywana przez średnik (;). Wartość podstawowego adresu serwera proxy SMTP jest wskazywana wielkimi literami "SMTP:"
      Userprincipalname 7628376@contoso.com

      Uwaga

      Ldp.exe znajduje się w systemie Windows Server 2008 i narzędziach pomocy technicznej systemu Windows Server 2003. Narzędzia do obsługi systemu Windows Server 2003 są zawarte w nośniku instalacyjnym systemu Windows Server 2003. Aby uzyskać to narzędzie, przejdź do następującej witryny internetowej firmy Microsoft: Windows Server 2003 Service Pack 2 32-bitowe narzędzia pomocy technicznej

  2. Połącz się z usługą Microsoft 365 przy użyciu modułu usługi Azure Active Directory dla Windows PowerShell. Aby tak zrobić, wykonaj następujące kroki:

    1. Kliknij przycisk Start, kliknij pozycję Wszystkie programy, kliknij pozycję Tożsamość Microsoft Entra, a następnie kliknij pozycję Moduł usługi Azure Active Directory, aby Windows PowerShell.

    2. Wpisz następujące polecenia w kolejności, w jakiej są prezentowane, i naciśnij klawisz Enter po każdym poleceniu:

      $cred = get-credential
      

      Uwaga

      Po wyświetleniu monitu wprowadź poświadczenia administratora platformy Microsoft 365.

      Connect-MSOLService –credential $cred
      

      Uwaga

      Moduły programu PowerShell Azure AD i MSOnline są przestarzałe od 30 marca 2024 r. Aby dowiedzieć się więcej, przeczytaj aktualizację wycofania. Po tej dacie obsługa tych modułów jest ograniczona do pomocy w migracji do zestawu Microsoft Graph PowerShell SDK i poprawek zabezpieczeń. Przestarzałe moduły będą nadal działać do 30 marca 2025 r.

      Zalecamy migrację do programu Microsoft Graph PowerShell w celu interakcji z Tożsamość Microsoft Entra (dawniej Azure AD). Aby uzyskać typowe pytania dotyczące migracji, zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Uwaga: W wersjach 1.0.x usługi MSOnline mogą wystąpić zakłócenia po 30 czerwca 2024 r.

      Pozostaw otwarte okno konsoli. Będziesz musiał użyć go w następnym kroku.

  3. Sprawdź zduplikowane atrybuty userPrincipalName w usłudze Microsoft 365.

    W połączeniu konsoli, które zostało otwarte w kroku 2, wpisz następujące polecenia w kolejności, w jakiej są prezentowane, a następnie naciśnij klawisz Enter po każdym poleceniu:

    $userUPN = "<search UPN>"
    

    Uwaga

    W tym poleceniu symbol zastępczy "wyszukaj nazwę UPN" reprezentuje atrybut UserPrincipalName, który został zapisany w kroku 1f.

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

    Pozostaw otwarte okno konsoli. Użyjesz go ponownie w następnym kroku.

  4. Sprawdź, czy nie ma zduplikowanych elementów proxyAddressesattributes. W połączeniu konsoli, które zostało otwarte w kroku 2, wpisz następujące polecenia w kolejności, w jakiej są prezentowane, a następnie naciśnij klawisz Enter po każdym poleceniu:

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. Dla każdego wpisu adresu serwera proxy zarejestrowanego w kroku 1f wpisz następujące polecenia w kolejności, w jakiej są one prezentowane, i naciśnij klawisz Enter po każdym poleceniu:

    $proxyAddress = "<search proxyAddress>"
    

    Uwaga

    W tym poleceniu symbol zastępczy "search proxyAddress" reprezentuje wartość atrybutu proxyAddresses zarejestrowanego w kroku 1f.

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

Elementy zwracane po uruchomieniu poleceń w kroku 3 i 4 reprezentują obiekty użytkownika, które nie zostały utworzone w ramach synchronizacji katalogów i które mają atrybuty powodujące konflikt z obiektem, który nie jest poprawnie synchronizowany.

Po określeniu powodujących konflikt lub nieprawidłowych wartości atrybutów rozwiąż problem, wykonując kroki opisane w następującym artykule bazy wiedzy Microsoft Knowledge Base:

2643629 co najmniej jeden obiekt nie jest synchronizowany, gdy jest używane narzędzie synchronizacji usługi Azure Active Directory

Więcej informacji

Polecenia Windows PowerShell w tym artykule wymagają modułu usługi Azure Active Directory dla Windows PowerShell. Aby uzyskać więcej informacji na temat modułu usługi Azure Active Directory dla Windows PowerShell, przejdź do następującej witryny internetowej firmy Microsoft:

polecenia cmdlet Microsoft Entra

Nadal potrzebujesz pomocy? Przejdź do witryny Microsoft Community.