Windows Server 2003 또는 Windows Server 2008에서 Adamsync의 OBJ_CLASS_VIOLATION 오류를 해결 하는 방법

요약

Adamsync 도구를 사용 하 여 Windows Server 2008 또는 Windows Server 2003에서 발생 하는 OBJ_CLASS_VIOLATION 오류를 해결 하는 방법을 설명 합니다.

Active Directory 디렉터리 서비스 및 ADAM 인스턴스 간에 클래스 정의 차이가 있기 때문에이 오류가 발생합니다. 이 문제를 해결 하려면 다음 절에 설명 되어 있는 단계를 수행.
  • 특성 및 개체의 클래스를 결정 합니다.
  • 특성이 최상위 클래스에 속해 있는 경우이 문제를 해결 하는 단계
  • 특성 TOP 클래스에 속하지 않는 경우 문제를 해결 하는 단계
이 문제를 해결할 수 없으면 Microsoft 기술 지원 서비스에 문의 하십시오.

증상

Windows Server 2003 기반 또는 Windows Server 2008 기반 컴퓨터에서 ADAM 인스턴스를 Active Directory 개체를 동기화 할 Active Directory 응용 프로그램 모드 (ADAM) 동기화 (Adamsync.exe) 도구를 사용 하려고 합니다. 그러나 다음과 같은 오류 메시지는
Adamsync 로그 파일에 기록.
처리 항목: 페이지 X 프레임 X 항목 X, 수 X, USN X 처리 소스 항목 < guid f9023a23e3a06d408f07a0d51c301f38 = > 처리 범위 내의 항목을 f9023a23e3a06d408f07a0d51c301f38. CN 개체를 대상 추가TestGroup, OU =계정, = dc =도메인, dc =com. 특성을 추가: sourceobjectguid, objectClass, instanceType, 표시 이름, 정보, 관리 설명, 인쇄 가능한 표시 이름, userAccountControl, 코드 페이지, 국가 코드, 로그온 시간, primaryGroupID, 설명, 계정 만료, sAMAccountName, desktopProfile, legacyExchangeDN, 파티션에서



Ldap 오류가 발생 했습니다. ldap_add_sW: 개체 클래스 위반입니다. 확장된 정보: 0000207 D: UpdErr: DSID-0315119 D 문제 6002 (OBJ_CLASS_VIOLATION) 데이터-2054643804

원인

간에 Active Directory 및 ADAM 클래스 정의 차이가 있기 때문에이 문제가 발생합니다. 클래스에 대해 잘못 된 특성을 포함 하도록 개체를 수정 하려고 하면이 차이가 나타납니다. 예를 들어, 특성 ADAM 스키마에서 전혀 정의 되지 않았거나 특성이 정의
하지만 특성은 특정 클래스에 대 한 필수 또는 선택적 특성 목록에 나타날 수 없습니다. 일반적으로 두 번째의 경우는 가장 일반적인
이러한 문제가 발생 합니다.

동기화 할 개체 클래스 정의 ADAM에서 사용할 수 없는 Active Directory에서 하나 이상의 특성을 포함 합니다. 이
"추가 특성" 섹션의 "현상" 절에 나와 있는 오류 메시지가 특성을 추가 하면 표시 됩니다. 이러한
특성은 선택적 또는 필수 특성이 동기화 되는 개체의 클래스에 대 한 목록이 정의 됩니다.

예를 들어, "현상" 절에 나와 있는 오류 메시지에 참조 개체가 CN = TestGroup. 볼 때의 CN = TestGroup 에 Active Directory 개체의이 클래스에 대 한 특성 목록을 확인 하 고 모든 부모 클래스,이 목록에서 하나 이상의 특성 ADAM에서이 클래스에 사용할 수 있는 필수 또는 선택적 특성 목록에 없는지를 확인 합니다.

참고: 모든 부모 클래스의 특성 목록이 포함 됩니다.

해결 방법

이 문제를 해결 하려면 다음이 단계를 수행 합니다.

특성 및 개체의 클래스를 결정 합니다.

  1. 실패 한 개체에 추가 되는 특성 목록을 확인 하십시오. 개체를 결정할 수 동기화 로그에서 오류 메시지를 확인 하 여 실패 한. 실패 한 개체는 항상 오류 메시지 정확 하 게 전에 동기화 로그의 끝에 표시 된 마지막 개체가 있습니다. 예를 들어, 해당 CN = TestGroup "현상" 절에 나와 있는 오류 메시지에서 개체가 실패 했습니다.
  2. 인쇄 가능한 표시 이름, 플래그또는 ExtensionName 특성이 오류 메시지에 포함할지 여부를 결정 합니다. 이러한 특성 중 하나를 오류 메시지에 포함 "특성이 최상위 클래스에 속해 있는 경우이 문제를 해결 하는 단계" 절을 참조. 오류 메시지에서 특성이 포함 된, "특성 TOP 클래스에 속하지 않는 경우 문제를 해결 하는 단계" 절을 참조.

특성이 최상위 클래스에 속해 있는 경우이 문제를 해결 하는 단계

Active Directory 스키마에 있는 최상위 클래스에는 인쇄 가능한 표시 이름, 플래그 또는 ExtensionName 특성을 찾을 수 있습니다. 그러나

ADAM에서 최상위 클래스에 이러한 특성이 포함 되지 않은. 그러나 ADAM에서 최상위 클래스를 변경할 수 없습니다. 따라서 문제를 해결 하려면 다음 방법 중 하나 사용 하 여:
  • XML 구성 파일에서 < 제외 > 섹션을 사용 하 여 이러한 특성을 제외 합니다.
  • MMC 스키마를 사용 하 여 수동으로 이러한 특성을 ADAM 스키마에서 관련 클래스에 대 한 선택적 특성 목록에 추가 합니다. 예를 들어, "현상" 절에서 설명한 오류 메시지가 그룹 클래스의 오류가 발생 한 개체가입니다. 따라서 이러한 특성을 ADAM 그룹 클래스에 대 한 선택적 특성 목록에 추가 해야.

특성 TOP 클래스에 속하지 않는 경우 문제를 해결 하는 단계

  1. 도구ADSchemaAnalyzer에 \ \옵션 메뉴에서 LDIF 생성 탭에서 새 고 있는 요소에 대 한 참조를 사용 하 여 업데이트 를 클릭 합니다.
  2. Active Directory ADAM으로 기본 스키마와 대상 스키마로 로드 하려면 파일 메뉴를 사용 합니다. 스키마 비교 완료 도구를 기다립니다.
  3. 스키마 메뉴에서 모든 요소를 포함 된 것으로 표시를 클릭 합니다.
  4. 파일 메뉴에서 변경 내용이 들어 있는 LDF 파일을 만들려면 만들기 LDIF 파일 클릭 합니다.

    참고: ADAM에 직접이 LDF 파일을 가져올 경우 필요한 특성 추가 되거나 올바르게 수정 되지 않이 됩니다. 또한,
  5. 오류 메시지가 표시 됩니다. 이 발생 하는 이유에 대 한 설명 "왜 ADAM에 직접 LDF 파일을 가져올 수 없습니다" 절을 참조 하십시오. 이 경우 LDF 파일을 가져오지 않고 5 단계로 이동 합니다.
  6. 4 단계에서 만든 LDF 파일을 검사 합니다. 특히 문제를 일으키는 클래스를 봅니다. 예를 들어, 그룹 클래스를 봅니다. 이 클래스에 대 한 섹션에 Active Directory에서이 클래스에 대 한 필수 또는 선택적 특성 목록에 존재 하지만 ADAM에서 누락 되는 특성 목록이 포함 됩니다.
  7. 문제가 특성을 LDF 파일에 찾습니다. 이렇게 하려면 LDF 파일에 "#attributes" 섹션을 검토 합니다. 이 단원의 특성을 가져올 수 없는 남아 있습니다. 일반적으로 문제 특성은 "#attributes" 섹션에서 제공 되는 유일한 특성. 문제가 특성을 찾으면 8 단계로 이동 합니다. 문제가 특성을 찾을 수 없는 경우 7 단계로 이동 합니다.
  8. LDF 파일에 "#attributes" 섹션에서 문제 특성 명백한 없는 경우 문제가 특성을 찾으려면 다음과 같이 하십시오.
    1. 현재 클래스의 모든 수정 LDF 파일이 한 섹션은. 이것은 "#Updating 현재 요소" 섹션. 이 섹션에서를 문제가 있는 클래스에 업데이트 섹션을 찾습니다. 예를 들어, 그룹 클래스 문제가 있으면 다음과 유사한 구역을 찾을 수 있습니다.
      # Update element: groupdn: cn=Group,cn=Schema,cn=Configuration,dc=X
      changetype: modify
      add: mayContain
      # mayContain: adminCount
      mayContain: 1.2.840.113556.1.4.150
      # mayContain: controlAccessRights
      mayContain: 1.2.840.113556.1.4.200
      # mayContain: groupAttributes
      mayContain: 1.2.840.113556.1.4.152
      # mayContain: groupMembershipSAM
      mayContain: 1.2.840.113556.1.4.166
      -

      Note Some more entries that may be located here have been excluded from this example.

      dn:
      changetype: modify
      add: schemaUpdateNow
      schemaUpdateNow: 1

    2. 작업당 단일 특성에 대 한 항목을 분할 하 여 4a 단계에서에서 찾은 항목을 변경 합니다. 예를 들어, 다음과 유사한 항목을 사용 하 여 단계 7a 예제에서 항목을 변경 합니다.
      # Update element: groupdn: cn=Group,cn=Schema,cn=Configuration,dc=X
      changetype: modify
      add: mayContain
      # mayContain: adminCount
      mayContain: 1.2.840.113556.1.4.150
      -

      # Update element: group
      dn: cn=Group,cn=Schema,cn=Configuration,dc=X
      changetype: modify
      add: mayContain
      # mayContain: controlAccessRights
      mayContain: 1.2.840.113556.1.4.200
      -

      dn: cn=Group,cn=Schema,cn=Configuration,dc=X
      changetype: modify
      add: mayContain
      # mayContain: groupAttributes
      mayContain: 1.2.840.113556.1.4.152
      -

      dn: cn=Group,cn=Schema,cn=Configuration,dc=X
      changetype: modify
      add: mayContain
      # mayContain: groupMembershipSAM
      mayContain: 1.2.840.113556.1.4.166
      -

      Note Some more entries that may be located here have been excluded from this example.


      dn:
      changetype: modify
      add: schemaUpdateNow
      schemaUpdateNow: 1

      # 버그: 233961 (Windows SE)
  9. LDF 파일을 저장 합니다.
  10. LDF 파일이 LDF 파일의 시작 부분에 제공 되는 명령을 사용 하 여 ADAM 스키마 가져오기.
  11. Ldifde 유틸리티에 의해 표시 되는 보고서를 봅니다. Ldifde는 지금 가져오지 않은 특성을 사용 하 여 발생 하는 오류를 보고 합니다. 다음 예제 정보를 오류 정보를 비슷합니다.
    C:\WINDOWS\ADAM>ldifde -i -u -f c:\data\problem\KBtest_modified.ldf -s localhost:50010 -j .-c "cn=Configuration,dc=X" #configurationNamingContext
    Connecting to "localhost:50010"
    Logging in as current user using SSPI
    Importing directory from file "c:\data\problem\KBtest_modified.ldf"
    Loading entries.
    Add error on line 15: Already Exists
    The server side error is: 0x2071 An attempt was made to add an object to the
    ectory with a name that is already in use.
    The extended server error is:
    00002071: UpdErr: DSID-0305030D, problem 6005 (ENTRY_EXISTS), data 0


    참고: 오류 보고서에 표시 되는 줄 번호를 확인 하 여 문제가 특성을 LDF 파일에서 찾습니다.
  12. 이 오류 정보를 사용 하 여 문제 특성을 찾아 문제를 해결 합니다. 이 문제를 해결 하려면 다음과 같이 하십시오.
    1. 오류 보고서에 표시 되는 줄 번호를 확인 하 여 문제가 특성을 LDF 파일에서 찾습니다. DisplayName 특성 실패 "DUP-" 접두사가 있을 수 있습니다.
    2. 특성의 개체 식별자 (OID)를 기록한 ADAM이 개체 식별자를 찾습니다.
    3. 동일한 개체 식별자가 ADAM에 특성을 찾습니다.
    4. LDF 파일의 차이 찾을 수 및 ADAM에 특성을 비교 합니다. 예를 들어, 특성은 동일한 개체 식별자를 제외한 다른 DisplayName 있을 수 있습니다.
    5. 어떤 특성을 결정 하 고 다른 하나를 수정 합니다. 예를 들어, LDF 파일에서 항목을 제거할 수 또는 ADAM 특성 항목을 수정할 수 있습니다. 또는 XML 구성 파일에서 < 제외 > 섹션을 사용 하 여 동기화에서 문제가 특성을 제외할 수 있습니다.
  13. 문제 특성은 Active Directory 또는 ADAM 스키마 또는 LDF 파일에서 특성을 제거한 후 수정한 후 수정된 된 LDF 파일을 다시 가져옵니다. 이제 가져오기 작업이 성공적으로 수행 해야 합니다. 문제가 해결 되지 않으면 문제의 원인이 되는 다른 특성이 있을 수 있습니다. 특성을 모두 가져올 때까지 10-12 단계를 반복 합니다.

진단 로깅

문제가 특성을 찾으면 하기 어려울 수 있습니다 무엇이 잘못 된 것입니다. 예를 들어, 찾지 못할 수 있습니다 중복 개체 식별자 또는

다른 표시 이름 항목입니다. 문제가 특성을 가져올 수 없을 때 LDAP 인터페이스에 대해 디버그 로깅을 설정 하 여 오류에 대 한 자세한 정보를 얻을 수 있습니다. 이렇게 하려면, 다음 단계를 수행하십시오.
  1. Ldifde 실패에 대 한 자세한 정보를 얻으려면 로그인 ADAM LDAP를 켭니다. 이렇게 하려면 범주 16 LDAP 인터페이스 이벤트 레지스트리 항목의 값을 5로 변경. 이 레지스트리 항목은 다음 레지스트리 하위 키 아래에 있습니다.
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services
    \ADAM_instanceName\Diagnostics
  2. LDF 파일을 다시 가져옵니다.
  3. 이벤트 로그에서 오류를 확인 합니다.
  4. 문제 해결을 마친 후 범주 16 LDAP 인터페이스 이벤트 레지스트리 항목의 값을 0으로 다시 설정 합니다. 그렇지 않으면 이벤트 로그가 침수 된 수 있습니다.

Microsoft 기술 지원 서비스에 문의

이 문서의 단계를 완료 한 후 문제가 해결 되지 않으면 Microsoft 기술 지원 서비스 문의. Microsoft 기술 지원 서비스에 액세스 하려면 다음 링크를 클릭 합니다.

상태

이 동작은 의도된 것입니다.

자세한 내용

Adamsync 도구를 사용 하 여 ADAM에 Active Directory에서 데이터를 동기화 하려면 다음과이 같이 하십시오.
  1. 시작, 모든프로그램, ADAM가리킨 및 다음 ADAM 도구 명령 프롬프트를 클릭 합니다.
  2. 명령 프롬프트에서, 다음 명령을 입력하고 ENTER키를 누릅니다.
    Server_Nameadamsync /fs:port_number configurationName /log log_file_name.log
Adamsync 도구를 사용 하는 방법에 대 한 자세한 내용은 다음 Microsoft 웹 사이트를 방문 하십시오.

LDF 파일이 ADAM에 직접 가져올 수 없습니다 이유

"특성 TOP 클래스에 속하지 않는 문제를 해결 하는 단계" 절에서 1 단계에서 만든 LDF 파일을 가져올 경우
ADAM에 이러한 특성은 여전히 추가 되지 ADAM 특성 목록에. ADAM 스키마 MMC 또는 ADSIEDIT를 사용 하 여이 문제를 확인할 수 있습니다.
스키마를 추가 합니다. 이 문제는 Ldifde 작업이 실패 하면을 자동으로 가져오기 때문에 발생 합니다. 현재, Ldifde는 오류를 보고 하지 않습니다. ADSchemaAnalyzer LDF 파일을 생성 하는 방식으로 인해 아무런 표시 없이 실패 합니다. ADSchemaAnalyzer는 ntdsschemaaddntdsSchemamodify 를 사용합니다.
명령을 사용 합니다. 이러한 명령은 관대 한 LDAP 컨트롤을 설정합니다. 즉, 자동 오류입니다.

또한 각 클래스에 대해 선택적 특성 목록에 추가할 모든 특성은 하나의 추가 수정 작업 추가 됩니다. 따라서 문제가 되는 경우 특성 중 하나를 추가 전체 작업이 실패 하 고 목록에서 특성이 추가 됩니다. 따라서 추가 단계를 수행 해야
문제가 특성을 찾습니다.

일반적으로 실패 가능성이 높은 이유는 특성 또는 Active Directory의 속성 정의 사용 하는 몇 가지 다른 차이의 중복 개체 식별자
ADAM 하 고입니다. Windows Server 2003에서 ADSchemaAnalyzer 특성 및 클래스의 LdapDisplayName 사용 하 여 Active Directory 및 ADAM 비교 합니다.
Oid를 복제할 수 있는지 여부를이 나타내는 누락 가능성, 및 특성의 LDapDisplayName ADAM에 존재 하지 않는 경우에 새로운 특성으로 나타날 수 있습니다. Windows Server 2008 (Active Directory/LDS)의 ADSchemaAnalyzer 개체 식별자를 사용 하 고 있으면 충돌을 보고 합니다 찾을 수 있습니다.
속성

문서 ID: 923835 - 마지막 검토: 2017. 2. 7. - 수정: 1

피드백