Perl для системного администрирования



         

ADSI (Интерфейсы служб активных каталогов) - часть 7


Win32: :OLF под названием Win32: :OLE: :Enum. Win32: :0! F.' : f.-",:'1 ->new()

создает объект-перечислитель из какого-либо объекта-контейнера:

use Win32 : : OLE: : Enuti:

$onobj = Win32: :OLE: : Enurr->new($adsobj);

Для этого объекта можно вызвать несколько методов и получить дочерние объекты $adscoj. Подобный подход должен напомнить вам способ, применяемый в операциях поиска с Moziila: : LOAP; процесс тот же самый.

Идентификация объекта-контейнера

Заранее нельзя узнать, является ли объект контейнером. Не существует способа из Perl «спросить» объект, не контейнер ли он. Максимум, что можно сделать, - попытаться создать объект-перечислитель и, если эта попытка не удастся, фиксировать данный результат. Вот короткий пример, который делает именно это:

use Win32::OLE;

use Win32::OLE::Enum:

eval {$enobj = Win32::OLE::Enum->new($adsobj)};

print "Объект " . ($@ ? "не " : "") . "является контейнером \п";

Второй способ - посмотреть на другие источники, описывающие этот объект. Все это плавно перетекает в третью сложность.

Как же узнать что-нибудь об объекте?

До сих пор мы избегали одного большого и, возможно, самого важного вопроса. Скоро нам придется работать с объектами из двух пространств имен. Уже понятно, как получить и установить свойства объектов и как вызвать методы для этих объектов, но все справедливо только в случае, если известны названия этих свойств и методов. Откуда берутся эти названия? Как их можно найти?

Нет единого места, в котором можно найти ответы на эти вопросы, но существует несколько источников, из которых можно почерпнуть нужную информацию для формирования практически всей картины. Первое место - это документация по ADSI, особенно та помощь, о которой говорилось во врезке «Инструменты для ADSI». В этом файле содержится огромное количество материала. Для ответа на наш вопрос о названиях свойств и методов нужно начать с Active Directory Service Interfaces 2.5—>ADSI Reference—>ADSI System Providers.




Содержание  Назад  Вперед