Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Дополнения схемы являются постоянными. Невозможно удалить объекты attributeSchema и classSchema. В распределенной системе трудно гарантировать отсутствие экземпляров заданного класса или атрибута. Удаление определения класса или атрибута повреждает существующие экземпляры этого класса или атрибута.
Вы можете отключить существующий класс или атрибут, пометив его как "нефункционный". Это не влияет на существующие экземпляры класса или атрибута, помеченного таким образом, но предотвращает создание новых экземпляров.
Следующие ограничения применяются при отключении классов и атрибутов схемы:
- Нельзя отключить класс или атрибут категории 1.
- Нельзя отключить атрибут, который является членом класса, который также не отключен. Это связано с тем, что атрибут может потребоваться для класса (не отключен) и отключение атрибута предотвращает создание новых экземпляров класса.
Чтобы отключить атрибут, установите для его объекта attributeSchema значение атрибута isDefunct в TRUE. Если атрибут отключен, новые экземпляры атрибута не могут быть созданы. Чтобы повторно включить атрибут, задайте атрибут isDefunct значением FALSE.
Чтобы отключить класс, задайте атрибут isDefunct объекта classSchema значение TRUE. При отключении класса невозможно создать новые экземпляры класса. Чтобы повторно включить класс, задайте атрибут isDefunct в значение FALSE.
Установка объектов схемы как неактивных может быть полезной в производственных условиях. Если тестовая версия расширения схемы больше не требуется, пометьте ее как отклоненную. Его можно восстановить, удалив атрибут isDefunct или задав значение атрибута для FALSE. Это также защищает от непреднамеренного удаления объекта схемы, задав его неисменяемым, так как операция может быть легко отменена.
Помните, что сервер Active Directory не очищает существующие экземпляры атрибута или класса при удалении объекта схемы. Если удалить свойство isDefunct, все экземпляры снова становятся корректными, обычными объектами.
В следующем списке указаны другие последствия признания устаревшими объекта атрибутаSchema или классаSchema.
- Сбой добавления или изменения экземпляра.
- Коды ошибок ведут себя так, как если бы несуществующий класс никогда и не существовал.
- Поиск и удаление ведут себя так, как если бы объекты схемы не устарели.
- Разрешить удаление всего атрибута из объекта.
В следующем списке приведены дополнительные параметры в рабочей среде для снижения влияния неактивных расширений схемы.
- Удалите все значения атрибутов mayHave из нефункционного класса.
- Уменьшите размер всех mustHave значений атрибутов из неработающего класса.
- Удалите неработающий атрибут из глобального каталога.
- Удалите неиспользуемый атрибут из любого индекса.
Одним из методов удаления нежелательных изменений схемы в рабочей среде является использование разработчиками частного контроллера домена для тестирования. В этом случае можно:
- Сбросьте сервер Active Directory, используя Dcpromo.exe для понижения роли контроллера домена. После завершения понижения используйте Dcpromo.exe еще раз, чтобы вернуть сервер к контроллеру домена. Затем разработчик может использовать скрипты LDIF для перезагрузки всех необходимых классов, атрибутов и экземпляров объектов.
- Используйте Ntbackup.exe для выполнения резервного копирования состояния системы в доступную секцию диска. Перезагрузите систему в безопасный режим или режим восстановления службы каталога для восстановления.
Для операционных систем Windows Server 2003, когда вы помечаете класс или атрибут как устаревший, вы можете немедленно повторно использовать значения ldapDisplayName, schemaIdGuid, OID и mapiID элемента неиспользованной схемы при создании нового класса или атрибута для его замены. Устаревшая версия класса или атрибута сохраняется в контейнере схемы, но скрыта в оснастке MMC. Чтобы повторно активировать старый элемент схемы, задайте для isDefunct значение FALSE.
В следующем примере кода LDIF показано, как изменить атрибут isDefunct и изменить RDN таким образом, чтобы он не путался с новым классом, создаваемым для его замены.
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modify
replace: isDefunct
isDefunct: TRUE
-
dn: CN=MyClass,CN=Schema,CN=Configuration,DC=X
changetype: modrdn
newrdn: cn=MyClassOld
deleteoldrdn: 1
dn:
changetype: modify
add: schemaUpdateNow
schemaUpdateNow: 1
-
Используйте следующую команду, чтобы запустить пример кода LDIF для леса для компьютера, работающего в операционных системах Windows Server 2003.
ldifde /i /f rdn.ldf /c "DC=X" "dc=mydomain,dc=com"
(Где "DC=X" является константой)