Пятница, 05 августа 2011 14:36

Получение списка пользователей входящих в группу AD

Оцените материал
(9 голосов)

Если кто нибудь сталкивался с ситуацией, когда необходимо получить список пользователей входящих в группу, тот знает на сколько это длительная и муторная процедура, а когда таких групп несколько- это превращается в убийственное занятие. Решить такую проблему можно весьма легко, путем написания простенького скрипта (!!! скрипт не следует помещать на диск на котором установлена Операционная Система):

 'скрипт предназначен для получения списка пользователей входящих в группу

on error resume next

'Input data
DomainController = InputBox("Введите NetBIOS имя контроллера домена:","Имя контроллера домена","")
GroupName = InputBox("Введите имя группы:","Имя группы (Login Name)","")

'connect to AD object
Set objGroup = GetObject("WinNT://" & DomainController & "/" & GroupName)

'create *.csv file
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Fil = FSO.CreateTextFile("d:\" & GroupName & "_users.csv",2)
Fil.WriteLine(GroupName & vbCrLf & "Login Name;Full Name")

'List users
For Each Member in objGroup.Members
    If Member.Class = "User" Then
        Fil.WriteLine(Member.Name & ";" & Member.FullName)
        else If Member.Class = "Cotact" Then
        Fil.WriteLine(Member.Name & ";" & Member.FullName)
    End If
        End If
Next
Fil.Close
Wscript.Echo ("Выполение скрипта закончено" & vbCrLf & "Список пользователей находится в корне диска")

Принцип работы очень простой. Копируете в текстовый файл, сохраняете с разрешением VBS. Запускаете- указываете свой контролер домена- группу... и все. Заходите в корень диска в котором находится скрипт, там файл с названием вашей группы и расширением CSV. В этом файле логин и полное имя пользователей, на мой взгляд все быстро и удобно.

Я очень надеюсь, моя статья помогла Вам! Просьба поделиться ссылкой с друзьями:


Комментарии  

0 # Саша7 14.10.2016 12:35
Ах да - какой атрибут нужно указать, чтобы сортировка была по полю "Организация" в учетной записи, атрибут - Company, но даже не получается вывести список пользователей, просто пустой файл?
Member.Company не подходит
Ответить
+1 # Саша7 14.10.2016 10:58
Доброго времени суток.

Так как я скрипты писать не умею - воспользовался вашими наработками. Работает просто шикарно. Ошибка в тексте скрипта (else If Member.Class = "Cotact" Then) нужно "Contact"?

Такой вопрос - работает ли этот скрипт над группами безопасности в AD? Что можно дописать, чтобы брал данные из групп безопасности, а не из подразделений?
Заранее благодарен. Материал очень помог :roll:
Ответить
+1 # USER 03.04.2014 17:03
Не заработало, пока не сделал второй диск D, учтите это!!!! А в целом все ГУД, спасибо!!! :roll:
Ответить
0 # Sergio 25.02.2015 11:14
Спасибо - полезный скрипт
Цитирую USER:
Не заработало, пока не сделал второй диск D, учтите это!!!! А в целом все ГУД, спасибо!!! :roll:


можно диск D не делать, а исправить путь в этой строчке
Set Fil = FSO.CreateTextF ile("d:\" & GroupName & "_users.csv",2)
Ответить
0 # Виктор 24.07.2019 09:15
А ещё лучше сделать так:
Set WshShell = CreateObject("WScript.Shell")
Set Fil = FSO.CreateTextF ile( WshShell.Curren tDirectory & "\" & GroupName & "_users.csv",2)

После этого файл будет формироваться в той папке, где находится скрипт.
Ответить
+1 # SambI4 12.03.2014 10:32
Огромное спасибо. Очень выручили!!!! 8)
Ответить
0 # CJIABKA 04.06.2013 14:44
Прикольно. Жаль вложения группы в группу не учитывает.
Ответить
+1 # MIcha 01.12.2012 19:31
Помогло, спасибо :-)
Ответить

Добавить комментарий