Скрипт извлечения данных учетных записей пользователей через 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» и переместить туда все файлы пользователя. Рабочий вариант программы должен быть к этому готов.