중복되거나 잘못된 특성으로 인해 Microsoft 365에서 디렉터리 동기화 방지

증상

Microsoft 365에서 관리자는 디렉터리 동기화가 완료되면 다음과 같은 전자 메일 메시지 경고를 받습니다.

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

전자 메일 메시지의 오류 보고서에는 다음 오류 메시지 중 하나 이상이 포함될 수 있습니다.

  • 동일한 프록시 주소를 가진 동기화된 개체가 이미 Microsoft Online Services 디렉터리에 있습니다.
  • 사용자 ID를 찾을 수 없으므로 이 개체를 업데이트할 수 없습니다.
  • 이 개체와 연결된 다음 특성에는 이미 로컬 디렉터리의 다른 개체와 연결될 수 있는 값이 있으므로 Microsoft Online Services에서 이 개체를 업데이트할 수 없습니다.
  • 이 개체와 연결된 다음 특성에는 로컬 디렉터리 서비스의 다른 개체와 이미 연결될 수 있는 값이 있으므로 이 개체를 업데이트할 수 없습니다. [UserPrincipalName john@contoso.com;]. 로컬 디렉터리에서 중복 값을 수정하거나 제거합니다.
  • 이 개체와 연결된 다음 특성에 로컬 디렉터리 서비스의 다른 개체와 이미 연결될 수 있는 값이 있으므로 이 개체를 업데이트할 수 없습니다. [ProxyAddresses SMTP:john@contoso.com;]. 로컬 디렉터리에서 중복 값을 수정하거나 제거합니다.

또한 Microsoft Entra ID(연결) 동기화 서비스를 실행하는 경우 다음 오류 메시지 중 하나를 포함하는 이벤트 ID 6941의 instance 애플리케이션 로그인 이벤트 뷰어 기록됩니다.

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.

원인

이 문제는 AD DS(온-프레미스 Active Directory Domain Services) 스키마의 사용자 개체에 중복되거나 잘못된 별칭 값이 있고 이러한 사용자 개체가 디렉터리 동기화 중에 AD DS 스키마에서 Microsoft 365로 올바르게 동기화되지 않는 경우에 발생할 수 있습니다.

Microsoft 365의 모든 별칭 값은 지정된 organization 대해 고유해야 합니다. SMTP(Simple Mail Transfer Protocol) 주소의 at 기호(@) 다음에 고유한 접미사가 여러 개 있는 경우에도 모든 별칭 값은 고유해야 합니다.

온-프레미스 환경에서는 SMTP 주소의 at 기호(@) 다음에 있는 접미사를 기반으로 고유하면 별칭 값이 동일할 수 있습니다.

Microsoft 365용 클라우드에 중복 별칭 값이 있는 개체를 만들어 별칭을 고유하게 만드는 경우 별칭 하나에 고유한 숫자가 추가됩니다. 예를 들어 중복 별칭 값이 "Albert"인 경우 그 중 하나가 자동으로 "Albert2"가 됩니다. "Albert2"가 이미 사용 중인 경우 별칭은 "Albert3"이 됩니다. 그러나 별칭 값이 중복된 개체가 온-프레미스 AD DS에 만들어지면 디렉터리 동기화가 실행되고 개체 동기화가 실패할 때 개체 충돌이 발생합니다.

해결 방법

이 문제를 resolve 다른 AD DS 개체와 충돌하는 중복 값 및 값을 확인합니다. 이렇게 하려면 다음 방법 중 하나를 사용합니다.

방법 1: IdFix Microsoft Entra 동기화 도구 오류 수정 도구 사용

IdFix Microsoft Entra 동기화 도구 오류 수정 도구를 사용하여 중복되거나 잘못된 특성을 식별합니다. IdFix 도구를 사용하여 중복 특성을 resolve 하려면 다음 Microsoft 기술 자료 문서를 참조하세요.

IdFix 도구를 실행한 후 두 개 이상의 개체에 대한 ERROR 열에 "중복"2857385 표시됩니다.

방법 2: 기존 온-프레미스 사용자를 Microsoft Entra 사용자에 매핑

이렇게 하려면 다음 Microsoft 기술 자료 문서를 참조하세요.

2641663 SMTP 일치를 사용하여 디렉터리 동기화를 위해 온-프레미스 사용자 계정을 Microsoft 365 사용자 계정과 일치시키는 방법

방법 3: 디렉터리 동기화를 통해 Microsoft Entra ID 만들어지지 않은 개체로 인해 발생하는 특성 충돌 확인

Microsoft 365 관리 도구를 사용하여 만든 사용자 개체(및 디렉터리 동기화를 통해 Microsoft Entra ID 생성되지 않은) 사용자 개체로 인해 발생하는 특성 충돌을 확인하려면 다음 단계를 수행합니다.

  1. 온-프레미스 AD DS 사용자 계정의 고유한 특성을 확인합니다. 이렇게 하려면 Windows 지원 도구가 설치된 컴퓨터에서 다음 단계를 수행합니다.

    1. 시작을 클릭하고 실행을 클릭하고 ldp.exe 입력한 다음 확인을 클릭합니다.

    2. 연결을 클릭하고 연결을 클릭하고 AD DS 도메인 컨트롤러의 컴퓨터 이름을 입력한 다음 확인을 클릭합니다.

    3. 연결을 클릭하고 바인딩을 클릭한 다음 확인을 클릭합니다.

    4. 보기를 클릭하고 트리 뷰를 클릭하고 BaseDN 드롭다운 목록에서 AD DS 도메인을 선택한 다음 확인을 클릭합니다.

    5. 탐색 창에서 올바르게 동기화되지 않는 개체를 찾아 두 번 클릭합니다. 창 오른쪽의 세부 정보 창에는 모든 개체 특성이 나열됩니다. 다음 예제에서는 개체 특성을 보여줍니다.

      스크린샷은 개체 특성의 예를 보여줍니다.

    6. multivalue proxyAddresses 특성에 userPrincipalName 특성 및 각 SMTP 주소의 값을 기록합니다. 나중에 이러한 값이 필요합니다.

      특성 이름 예제 참고
      proxyAddresses proxyAddresses (3): x500:/o=Exchange/ou=Exchange 관리 그룹(GroupName)/cn=Recipients/cn=GUID; smtp:7628376@service.contoso.com; SMTP:7628376@contoso.com; 특성 레이블 옆에 괄호로 표시되는 숫자는 다중값 특성의 프록시 주소 값 수를 나타냅니다. 각 고유 프록시 주소 값은 세미콜론(;) 표시됩니다. 기본 SMTP 프록시 주소 값은 대문자 "SMTP:"로 표시됩니다.
      userPrincipalName 7628376@contoso.com

      참고

      Ldp.exe Windows Server 2008 및 Windows Server 2003 지원 도구에 포함되어 있습니다. Windows Server 2003 지원 도구는 Windows Server 2003 설치 미디어에 포함되어 있습니다. 또는 도구를 얻으려면 Microsoft 웹 사이트 Windows Server 2003 서비스 팩 2 32비트 지원 도구로 이동하세요.

  2. Windows PowerShell Azure Active Directory 모듈을 사용하여 Microsoft 365에 연결합니다. 제거하려면 다음 단계를 수행합니다.

    1. 시작을 클릭하고 모든 프로그램을 클릭하고 Microsoft Entra ID 클릭한 다음 Windows PowerShell Azure Active Directory 모듈을 클릭합니다.

    2. 표시되는 순서대로 다음 명령을 입력하고 각 명령 다음에 Enter 키를 누릅니다.

      $cred = get-credential
      

      참고

      메시지가 표시되면 Microsoft 365 관리자 자격 증명을 입력합니다.

      Connect-MSOLService –credential $cred
      

      참고

      Azure AD 및 MSOnline PowerShell 모듈은 2024년 3월 30일부터 더 이상 사용되지 않습니다. 자세한 내용은 사용 중단 업데이트를 참조하세요. 이 날짜 이후에는 이러한 모듈에 대한 지원이 Microsoft Graph PowerShell SDK 및 보안 수정에 대한 마이그레이션 지원으로 제한됩니다. 사용되지 않는 모듈은 2025년 3월 30일까지 계속 작동합니다.

      Microsoft Entra ID(이전의 Azure AD)와 상호 작용하려면 Microsoft Graph PowerShell로 마이그레이션하는 것이 좋습니다. 일반적인 마이그레이션 질문은 마이그레이션 FAQ를 참조하세요. 참고: MSOnline 버전 1.0.x는 2024년 6월 30일 이후에 중단이 발생할 수 있습니다.

      콘솔 창을 열어 둡니다. 다음 단계에서 사용해야 합니다.

  3. Microsoft 365에서 중복된 userPrincipalName 특성을 확인합니다.

    2단계에서 연 콘솔 연결에서 표시되는 순서대로 다음 명령을 입력하고 각 명령 다음에 Enter 키를 누릅니다.

    $userUPN = "<search UPN>"
    

    참고

    이 명령에서 자리 표시자 "search UPN"은 1단계에서 기록한 UserPrincipalName 특성을 나타냅니다.

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

    콘솔 창을 열어 둡니다. 다음 단계에서 다시 사용합니다.

  4. 중복 프록시Addressesattributes를 확인합니다. 2단계에서 연 콘솔 연결에서 표시되는 순서대로 다음 명령을 입력하고 각 명령 다음에 Enter 키를 누릅니다.

    $UserCredential = Get-Credential
    Connect-ExchangeOnline -Credential $UserCredential
    
  5. 1단계에서 기록한 각 프록시 주소 항목에 대해 표시되는 순서대로 다음 명령을 입력하고 각 명령 다음에 Enter 키를 누릅니다.

    $proxyAddress = "<search proxyAddress>"
    

    참고

    이 명령에서 자리 표시자 "검색 proxyAddress"는 1단계에서 기록한 proxyAddresses 특성의 값을 나타냅니다.

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

3단계와 4단계에서 명령을 실행한 후 반환되는 항목은 디렉터리 동기화를 통해 생성되지 않았고 올바르게 동기화되지 않는 개체와 충돌하는 특성이 있는 사용자 개체를 나타냅니다.

충돌하거나 잘못된 특성 값을 확인한 후 다음 Microsoft 기술 자료 문서의 단계에 따라 문제를 해결합니다.

2643629 Azure Active Directory 동기화 도구를 사용할 때 하나 이상의 개체가 동기화되지 않음

추가 정보

이 문서의 Windows PowerShell 명령에는 Windows PowerShell Azure Active Directory 모듈이 필요합니다. Windows PowerShell Azure Active Directory 모듈에 대한 자세한 내용은 다음 Microsoft 웹 사이트를 참조하세요.

Microsoft Entra Cmdlet

아직 해결되지 않았습니까? Microsoft 커뮤니티로 이동하세요.