2009-05-05 1 views
1

У меня есть набор из 10 групп AD. Я хотел бы программно выяснить, какие пользователи в домене AD НЕ являются членами этих 10 групп. Существует только один домен. Я знаю, что можно выполнить ADO SQL-запросы в vbscript, но мне было интересно (надеясь, молясь), если у кого-то есть консервированный скрипт?Active Directory - это скрипт, чтобы найти всех пользователей, которых нет в группе?

Я полагаю, Hacky способ может быть:

  1. сваливать все пользователи из 10 групп
  2. Дамп всех пользователей из домена
  3. Запуск WinDiff на 2 отвалов

Есть идеи?

+0

просто понял, WinDiff не будет работать, потому что два отвалы не обязательно в том же формате, что и может иметь пустые строки в разных местах. Боже, я хотел бы использовать Unix. – PowerApp101

ответ

3

Для тех, кто заинтересован, это работает:

(&(objectCategory=Person) 
    (& 
     (!memberOf=CN=group1,dc=company,dc=local) 
     (!memberOf=CN=group2,dc=company,dc=local) 
     (!memberOf=CN=group3,dc=company,dc=local) 
    ) 
) 
1

System.DirectoryServices обеспечивает возможность записи запросов LDAP. что-то вроде этого: (& (objectclass = Пользователь) (! memberof = cn = group1, ...) (! memberof = cn = group2, ...) (! memberof = cn = group3, ...))

Каждый элемент условия должен быть явно прописан, я считаю.

Я просто отвечаю быстро, поэтому у меня нет 100% кода, чтобы показать вам.

+0

Отрицательные значения должны быть заключены в скобки, т.е. (& (objectclass = Пользователь) (! (Memberof = cn = group1, ...)) (! (Memberof = cn = group2, ...)) (! (Memberof = cn = group3, ...))) - см. http://www.ietf.org/rfc/rfc2254.txt для получения дополнительной информации. – grantc

Смежные вопросы