Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

15.18 ADSI. Работа с объектом группы и интерфейс IADsGroup

Интерфейс IADsGroup в скриптах ADSI на VBScript, создание групп в Active Directory, работа со свойствами групп, добавление пользователей в группы, получение списка членов группы из скрипта

Группы в Active Directory обычно используются для целей:

  • предоставления разрешений (группы безопасности);
  • управления списками рассылки (для этой цели можно использовать как группы безопасности, так и группы распространения);
  • как флаг для проверки. Например, при выполнении какой-либо операции с учетными записями пользователей можно проверять принадлежность пользователя к определенной группе и в зависимости от возвращаемого результата выполнять данную операцию с учетной записью или нет.

С группами можно работать как средствами провайдера LDAP, так и средствами провайдера WinNT.

Создание группы производится, как правило, при помощи метода Create() интерфейса IADsContainer вышестоящего контейнерного объекта (домена или организационного подразделения). Например, создать группу Script Users в организационном подразделении HQ в домене NWTRADERS1.MSFT можно следующим образом:

Set oOU = GetObject("LDAP://OU=HQ,DC=nwtraders1,DC=msft")

Set oGroup = oOU.Create("group", "CN=Script Users")

oGroup.Put "groupType", &H4 Or &H80000000

oGroup.Put "samAccountName", "Script Users"

oGroup.Put "name", "Script Users"

oGroup.Put "displayName", "Script Users"

oGroup.Put "description", "Script Users Security Group"

oGroup.SetInfo

Прокомментируем значения, которые назначаются атрибуту groupType. Для этого атрибута используется пять значений:

  • &H1 — системная группа (такие группы создаются автоматически при установке компьютера или создании домена, самостоятельно создать такую группу нельзя);
  • &H2 — глобальная группа;
  • &H4 — доменная локальная группа;
  • &H8 — универсальная группа;
  • &H80000000 — определяет, что будет создана группа безопасности. Это значение указывается при помощи оператора OR. Если его не указать (но при этом указать одно из четырех предыдущих значений), то будет создана группа распространения.

Если тип группы не указывать, то по умолчанию будет создана глобальная группа распределения.

Получение ссылки на существующую группу можно произвести как при помощи провайдера LDAP:

Set oGroup = GetObject _

("LDAP://CN=Script Users,OU=HQ,DC=nwtraders1,DC=msft")

так и при помощи провайдера WinNT:

Set oGroup = GetObject("WinNT://nwtraders1/Script Users")

Объект группы поддерживает стандартные интерфейсы ADSI (IADs, IADsPropertyList), а также специализированный интерфейс IADsGroup с важными методами. Отметим, что несмотря на удобство этих методов, многие важные свойства групп (например, тип группы) через данный интерфейс недоступны и работать с ними придется напрямую средствами интерфейсов PropertyList/PropertyEntry/PropertyValue.

Ниже представлена информация о свойствах и методах интерфейса IADsGroup:

  • Description — это свойство представляет просто текстовое описание для данной группы:

Set oGroup = GetObject _

("LDAP://CN=Script Users,OU=HQ,DC=nwtraders1,DC=msft")

Wscript.Echo oGroup.Description

  • Add() — этот метод позволяет добавить объект Active Directory (чаще всего учетную запись пользователя) в группу. Ему можно передавать различные параметры:

путь в формате свойства AdsPath для добавляемого объекта:

Set oGroup = GetObject _

("LDAP://CN=Script Users,OU=HQ,DC=nwtraders1,DC=msft")

oGroup.Add "LDAP://CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft"

SID добавляемого объекта в различных форматах:

oGroup.Add _ "LDAP://SID=<010500000000000515000000c6bb507afbda8b7f43170a325b040000>"

или (только в Windows 2003):

oGroup.Add _

"LDAP://<SID=S-1-5-21-2052111302-2139871995-839522115-1115>"

или (при использовании провайдера WinNT):

oGroup.Add "WinNT://S-1-5-21-35135249072896"

  • IsMember() — этот метод позволяет проверить, является ли объект Active Directory членом данной группы и в зависимости от этого возвращает True или False. Учитывается только непосредственное членство: если, например, объект пользователя входит в глобальную группу, которая в свою очередь входит в локальную, то проверка членства для пользователя в локальной группе вернет False. Проверка может быть произведена только для объектов того же домена. Точно так же, как и метод Add(), метод IsMember() принимает в качестве параметра путь AdsPath или SID объекта, членство которого в группе проверяется (для провайдера WinNT проверка по SID не поддерживается);
  • Members() — этот метод позволяет вернуть коллекцию объектов Active Directory, которые являются членами данной группы (они возвращаются как Variant). Пример применения этого метода может выглядеть следующим образом:

Set oGroup = GetObject _

("LDAP://CN=Script Users,OU=HQ,DC=nwtraders1,DC=msft")

For Each Obj In oGroup.Members

    Wscript.Echo Obj.Name & vbTab & Obj.ADsPath

Next

  • Remove() — метод, обратный методу Add(). Он позволяет удалить объект Active Directory из группы. Этот метод принимает параметры в том же формате, что и метод Add():

Set oGroup = GetObject _

("LDAP://CN=Script Users,OU=HQ,DC=nwtraders1,DC=msft")

oGroup.Remove "LDAP://CN=Alexander Ivanov,OU=HQ,DC=nwtraders1,DC=msft"

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2008, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru