Інтерфейс IADsGroup у скриптах ADSI на VBScript, створення груп в Active Directory

15.18ADSI. Робота з об'єктом групи та інтерфейсIADsGroup

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

Групи Active Directory зазвичай використовуються для цілей:

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

З групами можна працювати як засобами провайдера LDAP, і засобами провайдера WinNT.

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

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

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

oGroup.Put "groupType", &H4 або H80000000

oGroup.Put "samAccountName", "Script Users"

oGroup.Put "name", "Script Users"

oGroup.Put "displayName", "Script Users"

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

Якщо тип групи не вказувати, за промовчанням буде створено глобальну групу розподілу.

Отримання посилання на існуючу групу можна зробитияк за допомогою провайдера LDAP:

Set oGroup = GetObject _

так і за допомогою провайдера WinNT:

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

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

Нижче наведено інформацію про властивості та методи інтерфейсу IADsGroup:

  • Description - це властивість представляє просто текстовий опис для цієї групи:

Set oGroup = GetObject _

Wscript.Echo oGroup. Description

  • Add () — цей метод дозволяє додати об'єкт Active Directory (найчастіше обліковий запис користувача) до групи. Йому можна передавати різні параметри:

шлях у форматі якості AdsPath для об'єкта, що додається:

Set oGroup = GetObject _

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

SID об'єкта, що додається в різних форматах:

oGroup.Add _ "LDAP://S >"

або (тільки у Windows 2003):

або (при використанні провайдера WinNT):

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

Set oGroup = GetObject _

For Each Obj In Ogroup.Members

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

  • Remove() - метод, зворотний методу Add(). Це дозволяє видалити об'єкт Active Directory з групи. Цей метод приймає параметри у тому форматі, як і метод Add():