Вход/Регистрация
Windows Script Host для Windows 2000/XP
вернуться

Попов Андрей Викторович

Шрифт:

Рассмотрим вначале, каким образом формируется строка связывания для доступа к объектам отдельной рабочей станции с операционной системой Windows ХР. В общем виде эта строка имеет следующий формат:

"WinNT:[//ComputerName[/ObjectName[, className]]]]"

Здесь параметр

ComputerName
задает имя компьютера;
ObjectName
— имя объекта (это может быть имя группы, пользователя, принтера, сервиса и т. п.);
className
— класс объекта. Возможными значениями параметра
className
являются, например,
group
(группа пользователей),
user
(пользователь),
printer
(принтер) или
service
(сервис Windows ХР).

Указав в качестве строки ADsPath просто "

WinNT:
", можно выполнить связывание с корневым объектом-контейнером, содержащим все остальные объекты службы каталога.

Приведем несколько примеров строк связывания для доступа к различным объектам компьютера Windows ХР (табл. 11.1).

Таблица 11.1. Варианты строк связывания на компьютере Windows ХР

Строка ADsPath Описание
"WinNT:"
Строка для связывания с корневым объектом пространства имен
"WinNT://404_Popov"
Строка для связывания с компьютером
404_Popov
"WinNT://404_Popov/Popov,user"
Строка для связывания с пользователем
Popov
компьютера
404_Popov
"WinNT://404_Popov/BankUsers, group"
Строка для связывания с группой
BankUsers
на компьютере
404_Popov

Для того чтобы из сценария WSH использовать объект ADSI, соответствующий сформированной строке связывания, необходимо применить функцию

GetObject
языка JScript, которая возвращает ссылку на объект ActiveX, находящийся во внешнем каталоге. Например:

var NameSpaceObj = GetObject("WinNT:");

var ComputerObj = GetObject("WinNT://404_Popov");

var UserObj = GetObject("WinNT://404_Popov/Popov,user");

var GroupObj = GetObject("WinNT://404_Popov/BankUsers, group");

Замечание

Во всех рассмотренных ранее сценариях для создания объектов ActiveX мы пользовались методами

CreateObject
и
GetObject
объекта
WScript
или объектом
ActiveXObject
языка JScript. Для связывания же с объектом ADSI нужно использовать именно функцию
GetObject
языка JScript (или VBScript)!

Перейдем теперь к рассмотрению конкретных примеров сценариев, использующих объекты ADSI.

Список всех доступных доменов в локальной сети

В листинге 11.1 приведен JScript-сценарий ListDomains.js, в котором создается список всех доменов, доступных в сети (рис. 11.1)

Рис. 11.1. Список всех имеющихся в сети доменов

В рассматриваемом сценарии производятся следующие действия. Сначала создается корневой объект

NameSpaceObj
класса
Namespace
для провайдера Windows NT, который содержит все остальные объекты службы каталога:

//Связываемся с корневым объектом Namespace

NameSpaceObj = GetObject("WinNT:");

Затем с помощью свойства

Filter
из коллекции
NameSpaceObj
выделяются все содержащиеся в ней объекты класса
Domain
и создается экземпляр объекта
Enumerator
(переменная
е
) для доступа к элементам коллекции
NameSpaceObj
:

//Устанавливаем фильтр для выделения объектов-доменов

NameSpaceObj.Filter = Array("domain");

//Создаем объект Enumerator для доступа к коллекции NameSpaceObj

E=new Enumerator(NameSpaceObj);

Список доменов будет храниться в переменной

List
, которая инициализируется следующим образом:

List="Bce доступные домены в сети:\n\n";

В цикле

while
выполняется перебор всех элементов коллекции, которые являются объектами класса
Domain
; название домена, хранящееся в свойстве Name, добавляется (вместе с символом разрыва строки) в переменную
List
:

while (!E.atEnd) {

 //Извлекаем текущий элемент коллекции (объект класса Domain)

 DomObj=Е.item;

 //Формируем строку с именами доменов

 List+=DomObj.Name+"\n";

 //Переходим к следующему элементу коллекции

 E.moveNext;

}

Сформированная таким образом переменная

List
выводится на экран с помощью метода
Echo
объекта
WScript
:

  • Читать дальше
  • 1
  • ...
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

Подпишитесь на рассылку: