Поделиться через


Модель схемы ADSI

Схема похожа на словарь, в котором она содержит определение каждого типа объекта, известного службе каталогов. Клиентские приложения ADSI могут просматривать схему для обнаружения функций любой конкретной реализации ADSI. Кроме того, ADSI предоставляет интерфейсы управления схемами, которые можно использовать для взаимодействия с базовой схемой службы каталогов.

Некоторые схемы являются расширяемыми, а поставщики ADSI или сторонние поставщики могут публиковать новые интерфейсы или дополнительные свойства для существующих интерфейсов. Клиенты ADSI используют эти данные, чтобы определить, какие функции поддерживаются для каждой службы каталогов.

Существует три типа объектов схемы: классы, свойства и синтаксисы, каждый из которых поддерживает интерфейсы управления схемами IADsClass, IADsProperty и IADsSyntax.

Примечание.

Класс является перегруженным термином. Существуют классы C++, классы Java, классы COM и классы ADSI. В этом документе класс word, если иное не указано, относится к категории или типу объекта схемы.

 

ADSI абстрагирует схему каждой службы каталогов и помещает ее в каждый корневой узел верхнего уровня в объекте пространства имен. Чтобы определить, какие классы поддерживает служба каталогов на определенном корневом узле, перечислите объект схемы и получите список объектов класса, объектов свойств и синтаксиса. Дополнительные сведения см. в разделе "Использование схемы ADSI".

Кэш схемы поставщика ADI LDAP

Поставщик LDAP для ADSI пытается кэшировать данные схемы на локальный компьютер. Подсема определяется различаемым именем, хранящимся в атрибуте SubSchemaSubEntry , расположенном в корне предприятия службы каталогов (rootDSE). Помимо предоставления данных подсемы, серверы LDAP версии 3 должны предоставлять атрибут modifyTimeStamp , используемый для определения последнего изменения схемы.

Когда ADSI сначала привязывается к серверу LDAP, он извлекает данные подсемы с помощью атрибута subSchemaSubEntry . Если ADSI успешно находит объект subschema, он сохраняет указатель на данные в реестре на компьютере, который подключается к серверу LDAP. Сведения о том, где эти значения хранятся в реестре, см. в разделе ADSI и контроль учетных записей пользователей.

Затем ADSI пытается обработать данные схемы и считывает атрибут modifyTimeStamp . Если атрибут modifyTimeStamp существует и ADSI успешно обрабатывает схему, ADSI записывает подсему на диск и создает два следующих значения реестра под ключом. Если данные subschema существуют, но не могут быть обработаны, ни из этих значений реестра не создаются:

  • Значение time, содержащее атрибут modifyTimeStamp. Это значение используется для обеспечения текущей нагрузки данных схемы и предотвращения постоянной перезагрузки данных схемы.
  • Значение файла, содержащее путь к тому, где ADSI хранит данные схемы в файловой системе. По умолчанию ADSI кэширует подсему в каталоге <systemroot>\SchCache с именем файла, соответствующим имени сервера LDAP.

Если данные подсемы могут обрабатываться, но атрибут modifyTimeStamp не предоставляется, данные схемы кэшируются в памяти, но не записываются на диск. Если сервер LDAP версии 3 был связан через ADSI на локальном компьютере, а кэшированный подсемы отсутствует, скорее всего, по одной из следующих причин:

  • Сервер не предоставлял правильные свойства.
  • ADSI не удалось обработать схему.
  • ADSI не удалось записать файл в файловую систему.