Вопрос или проблема
Мне сложно импортировать файл LDIF в ADAM/AD LDS, и ошибка ниже (тип экземпляра недействителен).
Я проверил и восстановился от ошибок, связанных с
- Импортируемый файл в ASCII, UTF8, ANSI
- Недействительные свойства в импортируемом файле (внутренние объекты MS для репликации)
- В AD имя контейнера пользователей — это
CN
, в ADAM — “OU” - Изменил класс тестового объекта с
contact
наuser
в maker.ldf - разные ошибки…
Моя общая цель — переместить данные сертификатов из ADDS в AD LDS и представить эту копию LDS в режиме чтения всему миру.
Теперь я натолкнулся на стену и застрял, не в состоянии импортировать сертификат в экземпляр. Чтобы убедиться, что я делаю всё логично правильно, я выполняю экспорт и импорт, как показано ниже.
Вопрос
- Как импортировать данные, как показано в образце импорта?
Образец ЭКСПОРТА
Командная строка
PS C:\test> ldifde -f .\test.ldf -v -s 127.0.0.1 -d "DC= FreeSMIME, DC=COM"
Подключение к "127.0.0.1"
Вход в систему как текущий пользователь с использованием SSPI
Экспорт каталога в файл .\maker.ldf
Поиск записей...
Запись записей
.... SNIP ...
Экспорт записи: CN=test12,OU=Users,DC=FreeSMIME,DC=com
9 записей экспортировано
Содержимое test.ldf
dn: CN=test12,OU=Users,DC=FreeSMIME,DC=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: test12
distinguishedName: CN=test12,OU=Users,DC=FreeSMIME,DC=com
instanceType: 4
whenCreated: 20140706175425.0Z
whenChanged: 20140706175425.0Z
uSNCreated: 13981
uSNChanged: 13981
name: test12
objectGUID:: FGuCH4ep+0yvXyXIGZnw6Q==
badPwdCount: 0
badPasswordTime: 0
pwdLastSet: 130491428650358040
objectSid:: AQUAAB/DvlvT9kQDKv5c3yyu4EqPUic3jHkmDg==
objectCategory:
CN=Person,CN=Schema,CN=Configuration,CN={EBB3EB07-5375-4D67-B774-42E7D82935A8}
dSCorePropagationData: 16010101000000.0Z
msDS-UserAccountDisabled: TRUE
Образец ИМПОРТА
Командная строка
PS C:\test> ldifde -i -k -f .\maker.ldf -v -s 127.0.0.1 Подключение к
“127.0.0.1” Вход в систему как текущий пользователь с использованием SSPI Импорт каталога
из файла “.\maker.ldf” Загружаю записи 1: DC=FreeSMIME,DC=comОшибка добавления записи, начинающейся с строки 1: Не желает выполнять Ошибка на стороне сервера: 0x2079 Указанный тип экземпляра недействителен. Расширенная ошибка сервера: 00002079: SvcErr: DSID-033309B0, проблема 5003 (WILL_NOT_PERFORM), данные 0
0 записей успешно изменено. Произошла ошибка в программе Файлы журналов не были записаны. Чтобы сгенерировать файл журнала, пожалуйста, укажите путь к файлу журнала с помощью опции -j.
Содержимое maker.ldf
dn: [email protected],OU=Users,DC=FreeSMIME,DC=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: [email protected]
userCertificate::
MIIFUTCCBDmgAwIBAgITHwAAADzW+zggKBd9dQABAAAAPDANBgkqhkiG9w0BAQUFADB0MQswCQYDVQ
QGEwJ1czEVMBMGA1UEChMMQml0Y2xlYXIgTExDMRYwFAYDVQQLEw1FbWFpbCBQcml2YWN5MRYwFAYD
VQQDEw1GcmVlU01JTUUuY29tMR4wHAYDVQQDExVTZWN1cmUgSXNzdWVyIDAxYS0wMDEwHhcNMTQwNz
A2MDQyNDQyWhcNMTUwMTAyMDQyNDQyWjCBgzELMAkGA1UEBhMCVVMxCzAJBgNVBAgTAk5ZMQwwCgYD
VQQHEwNOWUMxEzARBgNVBAsTClRlY2hub2xvZ3kxHjAcBgNVBAMMFW1ha2Vyb2Z0aGluZ3M3QG1lLm
NvbTEkMCIGCSqGSIb3DQEJARYVbWFrZXJvZnRoaW5nczdAbWUuY29tMIIBIjANBgkqhkiG9w0BAQEF
AAOCAQ8AMIIBCgKCAQEAymz3YPRVAE2i1X7XmmrBk+SmsH1FAyYEhNkKpDn6R+1Za8n5OC4UseQwCs
HoM/PtZ50JYViPW1+qBykehkH4LylCkp5OIjZbodedcIL+ucDHh1PITNChp8C5fQWYmfiUofWF8ztA
yGJNriy9VO30JFq9xexnif7i04kxdd151/BjOW5FEGOrpZJajoLkQycfbtdexxrKvGbSNsZZ4dwKVy
uxRcXXwgT9p8wa51uMGMBdpFsKTRkmFl8nvx1zRdcGfl7CkKLCRmZkoCPP+vgyqGUtO+bYxSP6vc0t
hZ7efXOkoDQWMfj/EHcKGWJgGm4B+l4SG9Pfkujr+Miw1CxHvwIDAQABo4IByjCCAcYwPQYJKwYBBA
GCNxUHBDAwLgYmKwYBBAGCNxUIgq30IYfppWqGlZ8EhYL3L4GCyxkhhZLlIIb5vHACAWQCAQ4wEwYD
VR0lBAwwCgYIKwYBBQUHAwQwDgYDVR0PAQH/BAQDAgUgMBsGCSsGAQQBgjcVCgQOMAwwCgYIKwYBBQ
UHAwQwRAYJKoZIhvcNAQkPBDcwNTAOBggqhkiG9w0DAgICAIAwDgYIKoZIhvcNAwQCAgCAMAcGBSsO
AwIHMAoGCCqGSIb3DQMHMB0GA1UdDgQWBBSruXcob9eIxbsorVGMF6m+w7LACTAfBgNVHSMEGDAWgB
TaxAaP6+QX4fmgA8d0h36ZY/fwRjBNBgNVHR8ERjBEMEKgQKA+hjxodHRwOi8vcGtpLmJpdGNsZWFy
LnVzL2kwMWEvU2VjdXJlJTIwSXNzdWVyJTIwMDFhLTAwMSgxKS5jcmwwbgYIKwYBBQUHAQEEYjBgMF
4GCCsGAQUFBzAChlJodHRwOi8vcGtpLmJpdGNsZWFyLnVzL2kwMWEvYS5Jc3N1ZTAxLmJpdGNsZWFy
LnVzX1NlY3VyZSUyMElzc3VlciUyMDAxYS0wMDEoMSkuY3J0MA0GCSqGSIb3DQEBBQUAA4IBAQA/6K
tRc0Nq5hdJouyTMNMUju+DW2Px2gVfAx6h7UWdG76FVJ14CuTCuS0zLngmO102eeTo9//ZOKE5UcdP
JmlegIam0ne8uNELInIY8HancU5fW34O+Jxa/ZqOMzXiHyKwTC4dwBsgP0TjHQsnYzSIAM/pB7fpBw
FYUeqcz3XmsjbasQazCotCuAXIIPaqW2hC7KbEXDCaCdLAWWQ8erd+CeNmmclP5GXi2ZvxVDOW8l/F
nGRQSrMTkZz4Rc2jS9w6VlGBMR+GXPQ9rJmxSl89WLATsejYFbDwbM5nKGJfpTZVf1SYnKGb9ficVu
eHeuwv1fGAV4s9zHSCsk33EElS
distinguishedName:
[email protected],CN=Users,DC=FreeSMIME,DC=com
instanceType: 4
name: [email protected]
objectCategory:
CN=Person,CN=Schema,CN=Configuration,DC=FreeSMIME,DC=com
mail: [email protected]
Мне удалось исправить файл импорта, удалив строку:
objectCategory:
CN=Person,CN=Schema,CN=Configuration,DC=FreeSMIME,DC=com
Ответ или решение
Как импортировать данные в ADAM / AD LDS и устранить ошибку "The specified instance type is invalid"
Импорт LDIF-файлов в Active Directory Application Mode (ADAM) или Active Directory Lightweight Directory Services (AD LDS) может вызвать ряд трудностей, одна из которых — это ошибка "The specified instance type is invalid". Давайте рассмотрим проблему более подробно и обсудим решения.
Причины ошибки
Ошибка 0x2079 The specified instance type is not valid
обычно возникает по нескольким причинам, связанным с настройками и содержимым LDIF-файла, который вы пытаетесь импортировать. Ниже приведены основные причины этой ошибки и рекомендации по их устранению:
-
Некорректные значения полей:
- Для AD LDS не используется свойство
instanceType
, как это делается в Active Directory (AD). Ваша попытка импортировать его в AD LDS может привести к ошибке, поскольку эта служба не распознает это свойство.
- Для AD LDS не используется свойство
-
Объектные категории и классы:
- Убедитесь, что классы объектов в LDIF-файле совместимы с схемой AD LDS. Например, классы
user
иperson
могут не поддерживаться в AD LDS, если они не определены в вашей схеме.
- Убедитесь, что классы объектов в LDIF-файле совместимы с схемой AD LDS. Например, классы
-
Удаление проблемных строк:
- Как вы уже сделали, удалите строку с
objectCategory
, так как данный атрибут также может быть несовместим с AD LDS.
- Как вы уже сделали, удалите строку с
-
Структура DN:
- Убедитесь, что
distinguishedName
(DN) правильно сформирован для вашего экземпляра AD LDS. Например, в AD LDS может потребоваться использовать OUs вместо CN для контейнеров.
- Убедитесь, что
Рекомендации по импорту LDIF файлов
Вот подробное руководство по правильному импорту LDIF-файлов.
Шаг 1: Подготовка LDIF-файла
Перед импортом важно убедиться, что ваш LDIF-файл скорректирован. Ниже представлен пример исправленного LDIF-файла.
dn: CN=test12,OU=Users,DC=FreeSMIME,DC=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: test12
distinguishedName: CN=test12,OU=Users,DC=FreeSMIME,DC=com
name: test12
mail: test12@freesmime.com
- Удалите ненужные атрибуты (
instanceType
,objectSid
,whenCreated
,whenChanged
, и т.д.), которые могут вызвать проблемы, если они не поддерживаются AD LDS. - Убедитесь, что для каждого объекта установлены только необходимые атрибуты.
Шаг 2: Выполнение команды импорта
Для импорта исправленного LDIF-файла выполните следующую команду в PowerShell:
ldifde -i -f maker.ldf -s 127.0.0.1 -k -v
Шаг 3: Проверка ошибок
Если возникают дополнительные ошибки в процессе импорта, внимательно изучите предоставленные сообщения. Используйте переключатель -j <path>
для создания лог-файлов, что поможет уточнить, где именно возникают сбои. Например:
ldifde -i -f maker.ldf -s 127.0.0.1 -k -v -j C:\Logs
Шаг 4: Проверка результата
После импорта проверьте, был ли импорт завершён успешно, проверить это можно с помощью команды:
Get-ADUser -Filter {Name -eq "test12"} -Server 127.0.0.1
Если ошибка не исчезает, возможно, стоит дополнительно взглянуть на схему, чтобы убедиться, что все классы объектов корректно определены.
Заключение
Импорт данных из AD DS в AD LDS может служить выгодным решением для управления данными. Устранение ошибки "The specified instance type is invalid" в первую очередь требует тщательной подготовки LDIF-файла, чтобы обеспечить совместимость с AD LDS. Если следовать шагам выше и учитывать особенности вашей реализации AD LDS, импорт должен успешно пройти.
Если у вас возникнут дополнительные вопросы или нужна дальнейшая помощь, не стесняйтесь задавать их.