1

Тема: VBS: Добавление пользователей в группу из файла

Исходные данные:
есть файл .txt со списком доменных пользователей  в формате:
аккаунт1
аккаунт2
...
Выборку делаю не я, моя задача:
Всех пользователей, попавших в файл, необходимо добавить в группу, к которой в ISA2006 будет применяться определенное правило.
Я только учусь писать скрипты, поэтому еще не все вещи для меня прозрачны.
Если я правильно понимаю, мне нужно создать группу в АД, добавить в нее пользователей из файла. И уже к ней в Исе применять необходимое правило.

Как  добавлять в группу было найдено http://gallery.technet.microsoft.com/Sc … rsist=True

Visual Basic

Const ADS_PROPERTY_APPEND = 3
 
Set objGroup = GetObject _
    ("LDAP://cn=Atl-Users,cn=Users,dc=NA,dc=fabrikam,dc=com")
objGroup.PutEx ADS_PROPERTY_APPEND, _
    "member", Array("cn=MyerKen,ou=Management,dc=NA,dc=fabrikam,dc=com")
objGroup.SetInfo

Но тут не совсем понятно как поступить с моем случае: у меня есть только логин человека, а  какую именно OU ему прописать я заранее не знаю, т.к. пользователи в файл могут попасть из разных OU.
Можно ли определить в какой OU находится пользователь (если есть вложенные, то соответственно цепочку)?

А может быть я вообще иду не по тому пути, и есть решение проще?

2

Re: VBS: Добавление пользователей в группу из файла

NameTranslate FAQ
IADsNameTranslate Interface (Windows)

Option Explicit

' ADS_NAME_INITTYPE_ENUM
Const ADS_NAME_INITTYPE_DOMAIN                =  1
Const ADS_NAME_INITTYPE_SERVER                =  2
Const ADS_NAME_INITTYPE_GC                    =  3

' ADS_NAME_TYPE_ENUM
Const ADS_NAME_TYPE_1779                      =  1
Const ADS_NAME_TYPE_CANONICAL                 =  2
Const ADS_NAME_TYPE_NT4                       =  3
Const ADS_NAME_TYPE_DISPLAY                   =  4
Const ADS_NAME_TYPE_DOMAIN_SIMPLE             =  5
Const ADS_NAME_TYPE_ENTERPRISE_SIMPLE         =  6
Const ADS_NAME_TYPE_GUID                      =  7
Const ADS_NAME_TYPE_UNKNOWN                   =  8
Const ADS_NAME_TYPE_USER_PRINCIPAL_NAME       =  9
Const ADS_NAME_TYPE_CANONICAL_EX              = 10
Const ADS_NAME_TYPE_SERVICE_PRINCIPAL_NAME    = 11
Const ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME   = 12


Dim strWinNT_Domain
Dim strWinNT_UserName

Dim strLDAP_UserName

Dim objNameTranslate


strWinNT_Domain   = "Domain"
strWinNT_UserName = "UserName"

With WScript.CreateObject("NameTranslate")
    .Init ADS_NAME_INITTYPE_GC, ""
    .Set  ADS_NAME_TYPE_NT4, strWinNT_Domain & "\" & strWinNT_UserName
    strLDAP_UserName = Replace(.Get(ADS_NAME_TYPE_1779), "/", "\/")
End With

WScript.Echo strLDAP_UserName

'Const ADS_PROPERTY_APPEND = 3
'…
'objGroup.SetInfo

WScript.Quit 0

3

Re: VBS: Добавление пользователей в группу из файла

alexii, огромное спасибо за ответ!
Статьи уже изучаю, чтобы разобраться что к чему и зачем.

4

Re: VBS: Добавление пользователей в группу из файла

Хоть и с опозданием, но отпишусь.
Информация очень пригодилась. Скрипт написан и работает.
Еще раз спасибо за помощь.