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

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

Жанры

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");

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

Эпоха Опустошителя. Том VII

Павлов Вел
7. Вечное Ристалище
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Эпоха Опустошителя. Том VII

Неверный

Тоцка Тала
Любовные романы:
современные любовные романы
5.50
рейтинг книги
Неверный

Бастард Императора. Том 2

Орлов Андрей Юрьевич
2. Бастард Императора
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Бастард Императора. Том 2

Железный Воин Империи II

Зот Бакалавр
2. Железный Воин Империи
Фантастика:
фэнтези
попаданцы
аниме
5.75
рейтинг книги
Железный Воин Империи II

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

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

Последний Паладин. Том 9

Саваровский Роман
9. Путь Паладина
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Последний Паладин. Том 9

Дочь моего друга

Тоцка Тала
2. Айдаровы
Любовные романы:
современные любовные романы
эро литература
5.00
рейтинг книги
Дочь моего друга

Телохранитель Генсека. Том 3

Алмазный Петр
3. Медведев
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Телохранитель Генсека. Том 3

Наномашины, Кошмар Академии! Том 10

Новиков Николай Васильевич
10. Первый среди карапузов
Фантастика:
аниме
попаданцы
5.00
рейтинг книги
Наномашины, Кошмар Академии! Том 10

Матабар

Клеванский Кирилл Сергеевич
1. Матабар
Фантастика:
фэнтези
5.00
рейтинг книги
Матабар

Этот мир не выдержит меня. Том 2

Майнер Максим
2. Первый простолюдин в Академии
Фантастика:
фэнтези
попаданцы
5.00
рейтинг книги
Этот мир не выдержит меня. Том 2

Ермак. Противостояние. Книга одиннадцатая

Валериев Игорь
11. Ермак
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Ермак. Противостояние. Книга одиннадцатая

На границе империй. Том 10. Часть 13

INDIGO
Вселенная EVE Online
Фантастика:
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 10. Часть 13

1941, Великая Отечественная катастрофа: Итоги дискуссии

Коллектив авторов
Документальная литература:
военная документалистика
6.25
рейтинг книги
1941, Великая Отечественная катастрофа: Итоги дискуссии