Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

"LDAP://" — для службы каталогов, созданной на основе протокола LDAP (Lightweight Directory Access Protocol), в том числе для Active Directory в Windows 2000;

"WinNT://" — для службы каталогов в сети Windows NT 4.0 или на локальной рабочей станции Windows ХР/2000;

"NDS://" — для службы каталогов NetWare NDS (Novell Directory Service);

"NWCOMPAT://" — для службы каталогов NetWare Bindery.

Вторая часть строки ADsPath определяет расположение объекта в конкретном каталоге. Приведем несколько примеров полных строк ADsPath:

"LDAP://ldapsrv1/CN=Kazakov,DC=DEV,DO=MSFT, DC-COM"

"WinNT://Domain1/Server1,Computer"

"WinNT://Domain1/Kazakov"

"NDS://TreeNW/0=SB/CN=Kazakov"

"NWCOMPAT://NWServer/MyNw3xPrinter"

В этом разделе мы подробно рассмотрим несколько простых сценариев, использующих объекты ADSI для автоматизации некоторых распространенных задач администрирования на отдельной рабочей станции с операционной системой Windows ХР; поняв принцип их работы, вы без труда сможете написать аналогичные сценарии для локальной сети, которая функционирует под управлением Active Directory или контроллера домена с Windows NT 4.0 (множество подобных примеров приведено в [18]).

Напомним, что на выделенном компьютере с Windows ХР имеется база данных, содержащая информацию обо всех локальных пользователях этого компьютера. Пользователи компьютера определяются своими атрибутами (имя регистрации, полное имя, пароль и т.п.) и могут объединяться в группы. Ниже мы приведем примеры сценариев WSH, с помощью которых можно:

получить список имеющихся в локальной сети доменов;

получить список всех групп, определенных на компьютере;

добавить и удалить пользователя компьютера;

определить всех пользователей заданной группы или все группы, в которые входит определенный пользователь;

просмотреть атрибуты пользователя и изменить его пароль.

Для получения более полной информации по технологии ADSI следует обратиться к документации Microsoft или специальной литературе (см. введение).

Связывание с нужным объектом каталога

Первым шагом для доступа к пространству имен любого каталога в целях получения информации о его объектах или изменения свойств этих объектов является связывание (binding) с нужным объектом ADSI.

Рассмотрим вначале, каким образом формируется строка связывания для доступа к объектам отдельной рабочей станции с операционной системой 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");

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

Конец детства (сборник)

Кларк Артур Чарльз
Фантастика:
научная фантастика
7.00
рейтинг книги
Конец детства (сборник)

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны

Гримуар темного лорда VII

Грехов Тимофей
7. Гримуар темного лорда
Фантастика:
боевая фантастика
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Гримуар темного лорда VII

Адвокат Империи 15

Карелин Сергей Витальевич
15. Адвокат империи
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Адвокат Империи 15

Тринадцатый VII

NikL
7. Видящий смерть
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Тринадцатый VII

Граф

Ланцов Михаил Алексеевич
6. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Граф

Адвокат Империи 14

Карелин Сергей Витальевич
14. Адвокат империи
Фантастика:
городское фэнтези
аниме
попаданцы
5.00
рейтинг книги
Адвокат Империи 14

Первый среди равных. Книга II

Бор Жорж
2. Первый среди Равных
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Первый среди равных. Книга II

Газлайтер. Том 22

Володин Григорий Григорьевич
22. История Телепата
Фантастика:
боевая фантастика
попаданцы
фэнтези
5.00
рейтинг книги
Газлайтер. Том 22

Геном хищника. Книга девятая

Гарцевич Евгений Александрович
9. Я - Легенда!
Фантастика:
боевая фантастика
рпг
попаданцы
5.00
рейтинг книги
Геном хищника. Книга девятая

Сапер. Том II

Вязовский Алексей
2. Сапер
Фантастика:
альтернативная история
4.25
рейтинг книги
Сапер. Том II

Черный Маг Императора 4

Герда Александр
4. Черный маг императора
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Черный Маг Императора 4

Газлайтер. Том 4

Володин Григорий
4. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 4

Эволюционер из трущоб. Том 7

Панарин Антон
7. Эволюционер из трущоб
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Эволюционер из трущоб. Том 7