Разработка динамических сайтов
SEO услуги
Управление контекстной рекламой

Вход на хостинг

Имя пользователя:*

Пароль пользователя:*

IT-новости

20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла

Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......

подробнее

30.07.2015 Ищем уникальный контент для сайта

Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......

подробнее

11.05.2015 Распространённые ошибки разработчиков сайтов

Не секрет, что в сети Интернет насчитывается миллионы сайтов, и каждый день появляются тысячси новых......

подробнее

Управление сетевыми принтерами домена


Иван Коробко

Любой системный администратор хотел бы получить легкий, компактный и универсальный инструмент, с помощью которого можно одновременно контролировать состояние всех принтеров текущего домена Microsoft Windows; получать исчерпывающую статистику по настройкам принтера; управлять принтерами домена и их очередями; получать доступ к веб-интерфейсу принтеров, при его наличии; осуществлять поиск доступных принтеров по одному из критериев: по названию, по размещению, по месторасположению устройства.

Предлагается решение, созданное на основе ASP, особенностью которого является динамичность. Выбор ASP обусловлен его возможностью работать с OLE-объектами и требованием динамичности.

Для воплощения данного решения была использована библиотека интерфейса службы активного каталога (Active Directory Service Interface – ADSI), которая позволяет управлять пространством имен Microsoft Windows 2000.

ADSI выпущен в 1997 году корпорацией Microsoft. ADSI поддерживает пространства имен LDAP, WinNT, IIS, NDS. В работе используются пространства имен LDAP и WinNT. Пространство имен LDAP используется для чтения текущего домена, соответственно списка опубликованных в них принтеров и поля AD. Протокол WinNT используется для работы управления принтерами и очередями печати.

Файловая структура проекта

Инструмент представляет сайт, точкой входа в который является страница на языке HTML. Сайт создан на основе окон (Frameset): файл default.htm делит окно браузера на два столбца. Текст файла default.htm (HTML):

<HTML>

<HEAD>

<!-- Левый столбец составляет 30% от ширины всего окна. Левое окно имеет идентификатор "main", второе "var".  -->

<TITLE>Список доступных сетевых принтеров </TITLE>

<META HTTP-EQUIV ="Content-Type" CONTENT="text/html; CHARSET=windows-1251">

</HEAD>

<FRAMESET cols="30%,*" FRAMEBORDER="5" BORDER="yes" FRAMESPACING="5" >

<FRMAE SRC="printer_adsi.asp?radGrp=1&Search_Text=" NAME="main" SCROLLING="yes" МАRGINHEIGHT=1 >

<FRAME SRC ="about:blank" NAME="var">

</FRAMESET >

</HTML>

Остальные страницы взаимосвязаны друг с другом и являются рекурсивными. Обе страницы написаны на ASP. Для создания обеих страниц был выбран VBScript. VBScript выбран потому, что является языком, поставляемым с Microsoft Windows; обладает необходимыми возможностями для реализации данного проекта, имеет простой синтаксис.

Каждый из ASP-файлов состоит из трех частей, которые взаимосвязаны друг с другом: WinNT, LDAP, HTML.

LDAP

В разделе LDAP рассмотрены следующие вопросы: определение доступного домена; построение запроса SQL; поиск опубликованных принтеров в AD; чтение полей принтеров.

Определение имени текущего домена

Название текущего домена определяется с помощью функции GetObject. Используя функцию GetObject, можго прочитать корень пространства имен, т.е. текущий домен.

Пример определения текущего домена (VBScript):

SET  rootDSE_ = GetObject("LDAP://RootDSE")

domain_ = "LDAP://" + rootDSE_.Get("defaultNamingContext")

Переменная domain_ имеет вид «dc=microsoft,dc=com», если домен «microsoft.com».

Имя текущего домена, полученного с помощью протокола WinNT, нельзя использовать, поскольку с помощью протокола WinNT, можно получить только сокращенное имя домена (в данном случае «Microsoft»). При указании сокращенного имени в строке с SQL-запросом произойдет ошибка. В сообщении, которое выведет браузер, будет указано, что путь к базе ошибочен, и базу невозможно открыть.

Построение запроса SQL

Запрос SQL используется для осуществления процедуры поиска объектов при заданном типе объекта.

В общем случае запрос SQL выглядит следующим образом:

SELECT поле_1, поле_2, …, поле_n FROM "LDAP://dc=домен_1,dc=домен_2…,domen_n" WHERE objectClass='тип_объекта'

В поле SELECT указываются поля, по которым идет выборка. Поля перечисляются через запятую, «пробелы» после запятой обязательны. Полный список полей объектов AD можно получить с помощью утилиты ADSI Edit, которая размещается в дистрибутиве Microsoft Windows 2000 в директории /Support/Tools.

В поле FROM указывается путь к объекту. В данном случае известен только домен. Пробелы в данном поле недопустимы.

В поле WHERE указывается тип объекта, к которому адресован запрос. Данное поле является фильтром. Протокол LDAP имеет несколько типов объектов, которые в запросе SQL определяются переменной objectClass: PrintQueue – массив принтеров, опубликованных в AD; Group – группы, созданные в AD; User – пользователи, созданные в AD; Computer – массив компьютеров, зарегистрированных в AD. Пример использования запроса SQL см. в разделе «Поиск опубликованных принтеров в AD».

«Поиск опубликованных принтеров в AD»

Для поиска объектов в AD с помощью протокола LDAP используется ADODB-соединение. После создания соединения формируется SQL-запрос и осуществляется поиск в соответствии с запросом. Результатом поиска является массив, который содержит значения полей, указаных в параметре SELECT SQL-запроса. Затем происходит вывод данных на экран. В приведенном примере осуществляется поиск всех опубликованных принтеров в текущем домене и вывод на экран названия принтера и его сетевого имени (VBScript):


Предыдущая страницаОглавлениеСледующая страница
 
[001] [002] [003] [004] [005] [006] [007] [008] [009] [010] [011] [012] [013] [014] [015] [016] [017] [018] [019] [020]
[021] [022] [023] [024] [025] [026] [027] [028] [029] [030] [031] [032] [033] [034] [035] [036] [037] [038] [039] [040]
[041] [042] [043] [044] [045] [046] [047] [048] [049] [050] [051] [052] [053] [054] [055] [056] [057] [058] [059] [060]
[061] [062] [063] [064] [065] [066] [067] [068] [069] [070] [071] [072] [073] [074] [075] [076] [077] [078] [079] [080]
[081] [082] [083] [084] [085] [086] [087] [088] [089] [090] [091] [092] [093] [094] [095] [096] [097] [098] [099] [100]
[101] [102] [103] [104] [105] [106] [107] [108] [109] [110] [111] [112] [113] [114] [115] [116] [117] [118] [119] [120]
[121] [122] [123] [124] [125] [126] [127] [128] [129] [130] [131] [132] [133] [134] [135] [136] [137] [138] [139] [140]
[141] [142] [143] [144] [145] [146] [147] [148] [149] [150]

+7 (831) 413-63-27
ООО Дельта-Технология ©2007 - 2023 год
Нижний Новгород, ул. Дальняя, 17А.
Rambler's Top100