Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Подключение к АD и чтение значений соответствующих полей
Подключение к АD реализовано с помощью ADODB-соединения:
$strADSQuery = "SELECT keywords, name, description, cn, uncname FROM '" +$domain_+"' WHERE objectClass='volume'"
$objConnection = CreateObject("ADODB.Connection")
$objCommand = CreateObject("ADODB.Command")
$objConnection.CommandTimeout = 120
$objConnection.Provider = "ADsDSOObject"
$objConnection.Open ("Active Directory Provider")
$objCommand.ActiveConnection = $objConnection
$objCommand.CommandText = $strADSQuery
$st = $objCommand.Execute
Поиск необходимых объектов осуществляется с помощью SQL-запроса. В качестве фильтра указывается ObjectClass=’volume’:
"SELECT uname, keywords, description, cn FROM '" +$domain+"' WHERE objectClass='volume'"
где $domain – имя текущего домена, который определяется чтением глобального каталога RootDSE. Для его чтения достаточно прав обычного пользователя. Переменная $domain имеет вид «DC=domain,DC=com»:
$rootDSE_ = GetObject("LDAP://RootDSE")
$domain = "LDAP://" + $rootDSE_.Get("defaultNamingContext")
Теперь необходимо правильно составить SQL-запрос. Для этого понадобятся следующие теоретические знания, а именно: как называются поля данного объекта и какому полю соответствует тот или иной тип данных (строка или массив). Рассмотрим подробнее объект «Shared Folder». Каждое поле любого объекта AD может быть либо строкой, либо массивом. Соответственно, механизмы чтения полей, имеющих разный тип данных, также отличаются.
Чтение поля, соответствующего типу данных «строка», осуществляется следующим образом:
$Value=$St.Fields("Field_Name").Value
Если тип данных массив:
$Val_Array=$St.Fields("Field_Name").Value
For Each $Val_Element in $Val_Array
$Value=$Value+$Val_Element
Next
В скрипте используются поля, описания и тип данных, которые приведены в таблице 1 (см. рис. 2).
Таблица 1. Описание используемых полей объекта Shared Folder
Название поля |
Тип данных |
Значение |
Description |
Массив |
Буква, на которую будет подключаться ресурс |
Cn |
Строка |
Имя, отображаемое в AD. Используется для определения объекта подключения |
UNCName |
Строка |
UNC-путь к сетевому ресурсу |
Keywords |
Строка |
Имя диска, фигурирующее в папке «Мой Компьютер» |