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 microsoft Entra ID (Connect), wystąpienie zdarzenia o identyfikatorze 6941, które zawiera jeden z następujących komunikatów o błędach, jest rejestrowane w Podglądzie 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żytkowników w lokalnym schemacie usług 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 entra firmy Microsoft 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 usługi 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 identyfikatorze Entra firmy Microsoft za pośrednictwem synchronizacji katalogów
Aby określić konflikty atrybutów, które są 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 identyfikatorze Entra firmy Microsoft za pomocą synchronizacji katalogów), wykonaj następujące kroki:
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:
Kliknij przycisk Start, kliknij przycisk Uruchom, wpisz ldp.exe, a następnie kliknij przycisk OK.
Kliknij pozycję Połączenie, kliknij przycisk Połącz, wpisz nazwę komputera kontrolera domeny usług AD DS, a następnie kliknij przycisk OK.
Kliknij pozycję Połączenie, kliknij pozycję Powiązanie, a następnie kliknij przycisk OK.
Kliknij pozycję Widok, kliknij pozycję Widok drzewa, wybierz domenę usług AD DS z listy rozwijanej BaseDN , a następnie kliknij przycisk OK.
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:
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
Połącz się z usługą Microsoft 365 przy użyciu modułu Azure Active Directory dla programu Windows PowerShell. Aby tak zrobić, wykonaj następujące kroki:
Kliknij przycisk Start, kliknij pozycję Wszystkie programy, kliknij pozycję Microsoft Entra ID, a następnie kliknij pozycję Moduł usługi Azure Active Directory dla programu Windows PowerShell.
Wpisz następujące polecenia w kolejności, w jakiej są prezentowane, i naciśnij 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 azure AD i MSOnline programu PowerShell 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 identyfikatorem Entra firmy Microsoft (dawniej Azure AD). Aby uzyskać typowe pytania dotyczące migracji, zapoznaj się z często zadawanymi pytaniami dotyczącymi migracji. Nuta: 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.
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 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.
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 Enter po każdym poleceniu:
$UserCredential = Get-Credential Connect-ExchangeOnline -Credential $UserCredential
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 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 programu Windows PowerShell w tym artykule wymagają modułu usługi Azure Active Directory dla programu Windows PowerShell. Aby uzyskać więcej informacji na temat modułu usługi Azure Active Directory dla programu Windows PowerShell, przejdź do następującej witryny internetowej firmy Microsoft:
Polecenia cmdlet Microsoft Entra
Nadal potrzebujesz pomocy? Przejdź do witryny Microsoft Community.