WMI-запрос к LDAP. Выборка членов группы. Путь к профилю.


Скрипт извлечения данных учетных записей пользователей через WMI-запрос к LDAP

Посмотреть список пользователей какой нибудь группы в домене, посмотреть данные каждого пользователя, в том числе и путь к его профилю можно при помощи оснастки «Active Directory Users and Computers». Однако, в некоторых случаях, хотелось бы оперировать актуальным списком этих данных, построенным программно, то есть, «не вручную».

В этом случае, можно использовать WMI-запрос к LDAP. На vbscript это будет выглядеть примерно так:

' инициализация объекта LDAP-модели, представляющего искомую группу:
Set objGroup = GetObject ("LDAP://" & _
"CN=MyGoup,OU=Groups,OU=MyDept,OU=MyTown,DC=MyDomain,DC=Local")
 
' выполнение запроса (обновление) данных:
objGroup.GetInfo
 
' обращение к реквизиту объекта "member" - списку членов группы:
arrMemberOf = objGroup.GetEx("member")
 
' обход списка членов группы:
For Each strMember in arrMemberOf
 
' инициализация объекта LDAP-модели, представляющего искомую пользователя:
    Set objUnit = GetObject("LDAP://" & strMember)
 
' считывание данных объекта объекта:
    UserName = objUnit.samaccountname ' пользователя идентификатор
    DesktopPath = objUnit.profile              ' путь к профилю

' вывод данных ... в виде сообщения
    MsgBox UserName & " " & DesktopPath
 
Next

Примечание

Бывает, в некоторых случаях, «система» решает создать по пути к профилю подкаталог «V2» и переместить туда все файлы пользователя. Рабочий вариант программы должен быть к этому готов.