IMHO.WS

IMHO.WS (http://www.imho.ws/index.php)
-   Операционные системы M$ (http://www.imho.ws/forumdisplay.php?f=2)
-   -   Список пользователей и групп AD (http://www.imho.ws/showthread.php?t=105812)

VictorLM 11.07.2006 12:28

Список пользователей и групп AD
 
Имеется контролер домена (Win2000)...

Подскажите, пожалуйста, как мне можно получить автоматически список пользователей с группами, в которые они входят.
Или наоборот -- список групп с соответствующими им пользователями.

Borland 11.07.2006 13:30

Можно написать скрипт на WSH (VBS или JS), который выгрузит требуемый список хоть в текстовый файл, хоть в Word, хоть в Excel.
Примеры таких скриптов можно взять здесь
Руководство пользователя (и многое другое) по WSH - здесь.

VictorLM 12.07.2006 16:45

Borland
Большое спасибо!
... только нужно n-ое время, чтобы освоить новый язык, а его не так много...

Есть у кого-нибудь возможность выложить готовый скриптик?

KomatoZo 12.07.2006 17:14

VictorLM

Код:

On Error Resume Next

Const E_ADS_PROPERTY_NOT_FOUND  = &h8000500D

Set objOU = GetObject _
    ("LDAP://cn=Users,dc=NA,dc=fabrikam,dc=com")
 
ObjOU.Filter= Array("user")
 
For Each objUser in objOU
    WScript.Echo objUser.cn & " is a member of: "
    WScript.Echo vbTab & "Primary Group ID: " & objUser.Get("primaryGroupID")
 
    arrMemberOf = objUser.GetEx("memberOf")
 
    If Err.Number <>  E_ADS_PROPERTY_NOT_FOUND Then
        For Each Group in arrMemberOf
            WScript.Echo vbTab & Group
        Next
    Else
        WScript.Echo vbTab & "memberOf attribute is not set"
        Err.Clear
    End If
    Wscript.Echo
Next

Этот кусок перечисляет всех юзверей с членством групп в контейнере Users. Остается только запустить его для всех OU или слегка модифицировать =)

VictorLM 12.07.2006 19:05

Поменял "fabrikam" на имя своего домена, сохранил в .vbs файле -- не работает...
Объясните, пожалуйста, что мне необходимо сделать, иначе это для меня просто "кусок кода"... :-(

KomatoZo 13.07.2006 10:09

Так... Смотри. Допустим, у тебя юзеры находятся в контейнере Users, как здесь, домен name.ru. Эта строчка тогда должна выглядеть так:
("LDAP://cn=Users,dc=name,dc=ru")
Суть понятна? Вот соответственно этому и меняешь. Если домен name1.name2.name3.local, то соответственно
dc=name1,dc=name2,dc=name3,dc=local
И так далее.

VictorLM 13.07.2006 11:47

KomatoZo
Спасибо за терпение!
В этой части понял -- буду пробывать...

Если не сложно, в "двух словах", как все это добро скидывать не в диалоговое окошко, а в файл (хотя бы в текстовый, в идеале -- в Exel)?

KomatoZo 13.07.2006 12:25

Хых.... Ну до чего же трудно, наверное пойти в скриптцентр и скомбинировать два примера.... =))))
Я же последний раз программы писал еще на C на x386 =)
Сейчас нарою.

Значит так:
1) создаем файл
Код:

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("C:\FSO\ScriptLog.txt")

2) открываем его и пишем в него
Код:

Sub OpenTextFileTest

  Const ForReading = 1, ForWriting = 2, ForAppending = 8

  Dim fso, f

  Set fso = CreateObject("Scripting.FileSystemObject")

  Set f = fso.OpenTextFile("c:\testfile.txt", ForWriting, True)

  f.Write "Hello world!"

  f.Close

End Sub

Что еще остается непонятным??? =))))

Кстати, если разделять поля в файле запятыми, то получится csv. А его то уж засунуть в excel нетрудно.
Для засовывания в excel напрямую нужно просто другой объект создавать. Мне искать лениво, так что сам. А общий принцип тот же.

Cartman 13.07.2006 12:53

Цитата:

VictorLM:
Огромное спасибо!!!
Правила:
Цитата:

- запрещено создание сообщений типа "спасибо", "thanks" и т.п. Для выражения благодарности есть Персональные Сообщения (ПС) и Репутация пользователя
Устное предупреждение. Сообщение удалено.


Часовой пояс GMT +4, время: 10:19.

Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.