При попытке продвинуть машину 2012 R2 в качестве контроллера домена в домене уровня леса \ домена 2003 года я получаю следующую ошибку при прохождении процедур adprep и forestprep:
Ошибка выполнения ADPrep -> System.ComponentModel.Win32Exception (0x80004005): устройство, подключенное к системе, не работает. Просмотрите файлы журнала в каталоге C: \ Windows \ debug \ adprep \ logs \ 20160128201714 для получения подробной информации.
Журнал ADPrep показывает следующую ошибку:
[2016/01/28: 20: 17: 14.402] В ldifde передается командная строка ldifde -i -f "C: \ Windows \ system32 \ adprep \ sch32.ldf" -s "ral-ad1.AD.mydomain. com "-h -j" C: \ Windows \ debug \ adprep \ logs \ 20160128201714 "- $" C: \ Windows \ system32 \ adprep \ schupgrade.cat "[2016/01/28: 20: 17: 33.382] ОШИБКА : Импорт из файла C: \ Windows \ system32 \ adprep \ sch32.ldf завершился неудачно. Файл с ошибкой сохраняется в C: \ Windows \ debug \ adprep \ logs \ 20160128201714 \ ldif.err.32.
Если возникает ошибка «Недостаточно прав» (код ошибки Ldap 50), убедитесь, что указанный пользователь имеет права на чтение и запись объектов в контейнерах схемы и конфигурации, или выйдите из системы и войдите в систему как пользователь с этими правами и перезапустите forestprep. . В большинстве случаев для запуска forestprep достаточно быть членом как Schema Admins, так и Enterprise Admins. [2016/01/28: 20: 17: 33.393] Adprep не смог обновить схему на хозяине схемы.
[Статус / Последствия]
Схема не будет восстановлена в исходное состояние.
[Действия пользователя]
Для получения подробной информации проверьте файл журнала Ldif.err в каталоге C: \ Windows \ debug \ adprep \ logs \ 20160128201714. [2016/01/28: 20: 17: 33.393] Adprep не смог обновить информацию о лесах.
[Статус / Последствия]
Adprep требует доступа к существующей информации о масштабе леса от хозяина схемы для выполнения этой операции.
Журнал ldiff.err.32 показывает
15: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = AD, DC = mydomain, DC = com DN входа: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = AD, DC = mydomain, DC = com Добавить ошибку при начале записи в строке 232: Нежелание выполнять
Ошибка на стороне сервера: 0x20c5 Ошибка обновления схемы: класс в списке вспомогательных классов не существует или не является вспомогательным классом.
Расширенная ошибка сервера:
000020C5: SvcErr: DSID-03260249, проблема 5003 (WILL_NOT_PERFORM), данные 8389
Строка 232 файла sch32.ldf выглядит следующим образом
dn: CN = Пользователь, CN = Схема, CN = Конфигурация, DC = X changetype: ntdsSchemaModify добавить: systemMayContain systemMayContain: 1.2.840.113556.1.4.1929
Кажется, он пытается изменить схему пользователя и терпит неудачу. Я подтвердил, что моя учетная запись находится в административных группах Schema \ Domain \ Enterprise. Я также проверил, что эти группы имеют доступ на запись в контейнер схемы с помощью adsiedit. Ближайшее попадание, которое я смог найти, было вот этот. Там, где MS MVP Нед Пайл указал в комментариях, это могло быть вызвано сторонним инструментом, некорректно расширяющим атрибут ранее. Рекомендуя пользователю обратиться в службу поддержки Microsoft. Я предполагаю, что Microsoft больше не поддерживает Windows 2003, так что этот путь может не уйти далеко. Кто-нибудь видел это раньше? Спасибо за любую помощь.
Вы можете быть удивлены ответом, который вы получите от службы поддержки Microsoft, поскольку эта проблема, похоже, связана не столько с поддержкой Server 2003, сколько с препятствием, которое мешает вам перейти на 2012 R2. По крайней мере, вы должны так крутить.
Я также почти уверен, что это связано с настройкой схемы. Обычно это стороннее программное обеспечение, но иногда может быть что-то вроде неудачной установки Exchange. Вы, вероятно, можете изменить свою схему обратно в форму, чтобы вы могли ее обновить, но помните, что это может привести к поломке программного обеспечения, которое изначально внесло изменения в схему.
Следующее предоставляется без гарантии и без гарантии. Попробуйте это на свой страх и риск. Если возможно, попробуйте сначала в лаборатории. Правильнее всего было бы позвонить в Microsoft и посмотреть, помогут ли они вам, прежде чем пытаться сделать это самостоятельно.
Выгрузите определение класса User из схемы:
ldifde -d "CN=User,CN=Schema,CN=Configuration,DC=contoso,DC=com" -f user.txt
Поищите в файле любые auxiliaryClass
поля. Вы, наверное, увидите shadowAccount
, posixAccount
, и, возможно, некоторые другие.
Для каждого из этих вспомогательных классов также выгрузите определения их схем, точно так же, как вы только что сбросили определение класса User.
В каждом из этих определений вспомогательного класса проверьте их objectClassCategory
свойство. Это 1? Если да, то должно быть 3. Измените на 3.
objectClassCategory
документируется здесь:
https://msdn.microsoft.com/en-us/library/ms679014(v=vs.85).aspx
4 байта. Конструктивная 1, реферат 2, вспомогательная 3. Класс 88, 0 использовать не следует.
Вспомогательный класс должен иметь значение 3. Если вспомогательный класс имеет значение 1, значит, кто-то допустил ошибку при изменении схемы. Измените его на 3 и позвольте AD реплицировать схему, затем попробуйте adprep
очередной раз.
Сообщение об ошибке, которое вы опубликовали:
Ошибка на стороне сервера: 0x20c5 Ошибка обновления схемы: класс в списке дополнительных классов не существует или не является вспомогательным классом.
Теперь это имеет гораздо больше смысла в контексте того, что я изложил выше.