Найти - Пользователи
Полная версия: получить список пользователей из Active Directory
Начало » Network » получить список пользователей из Active Directory
1
qman
Всем привет
подскажите есть утилита ldp.exe
есть
запрос к контроллеру домена Active Directory
BASE DN: DC=dep,DC=firma,DC=ru
FILTER: (&(objectCategory=person)(objectClass=user))
данный запрос великолепно работает.. В результате получаю список всех пользователей домена.
скрипт на питоне:
import ldap
l1 = ldap.initialize('ldap://srv:389')
r = l1.search_s('DC=dep,DC=firma,DC=ru',ldap.SCOPE_SUBTREE,
'(&(objectCategory=person)(objectClass=user))',
['cn','ou','dc','description','mail'])
print r
при запуске получаю
[]
Может кто нибудь подсказать почему получаю пустой ответ

P.S. в python не пустой результат возвращает только такой скрипт
import ldap
l1 = ldap.initialize('ldap://srv:389')
r = l1.search_s('DC=dep,DC=firma,DC=ru',ldap.SCOPE_SUBTREE,
'(objectCategory=*)',
['cn','ou','dc','description','mail'])
print r
поиск по ‘(objectCategory=person)’ уже возвращает пустой результат
max
А бинд ещё неплохо было бы проделать - у меня ругается сразу:

OPERATIONS_ERROR: {'info': ‘00000000: LdapErr: DSID-0C090627, comment: In order to perform this operation a successful bind must be completed on the connection., data 0, vece’, ‘desc’: ‘Operations error’}

            bn = "%s@%s" % (username,AD_DNS_NAME)
l1.simple_bind_s(bn,password)
Можно подглянуть тут немного:

http://www.djangosnippets.org/snippets/501/
qman
Большое спасибо за ссылку. Накидал такой скрипт
import ldap

AD_DNS_NAME = 'dc.firma.ru'
AD_LDAP_PORT = 389
AD_SEARCH_DN = 'CN=Users,dc=dep,dc=firma,dc=ru'
# This is the NT4/Samba domain name
AD_NT4_DOMAIN = 'dep.firma.ru'
AD_SEARCH_FIELDS = ['mail','givenName','sn','sAMAccountName']
AD_LDAP_URL = 'ldap://%s:%s' % (AD_DNS_NAME,AD_LDAP_PORT)

username = 'myname'
password = 'mypassword'
binddn = "%s@%s" % (username,AD_NT4_DOMAIN)
try:
l = ldap.initialize(AD_LDAP_URL)
l.simple_bind_s(binddn,password)
l.unbind_s()
print "connection True"
except ldap.LDAPError:
print "connection False"
res = l.search_ext_s(AD_SEARCH_DN,ldap.SCOPE_SUBTREE,
"sAMAccountName=%s" % username,AD_SEARCH_FIELDS)[0][1]
print res
получаю
connection True
Traceback (most recent call last):
File "ad_ldap6.py", line
24, in <module>
"sAMAccountName=%s" % username,AD_SEARCH_FIELDS)[0][1]
File "C:\Python25\lib\site-packages\ldap\ldapobject.py", line 501, in search_e
xt_s
msgid = self.search_ext(base,scope,filterstr,attrlist,attrsonly,serverctrls,
clientctrls,timeout,sizelimit)
File "C:\Python25\lib\site-packages\ldap\ldapobject.py", line 497, in search_e
xt
timeout,sizelimit,
File "C:\Python25\lib\site-packages\ldap\ldapobject.py", line 96, in _ldap_cal
l
result = func(*args,**kwargs)
ldap.LDAPError: LDAP connection invalid
судя по первой строчке к серверу успешно подключается , а поиск не удаеться..
Не понятно к какому серверу подключатся к контроллеру домена или глобал каталогу для поиска email адресов(пробовал и первое и второе - результат одинаковый выше)?
andrulik
qman
судя по первой строчке к серверу успешно подключается , а поиск не удается..
Получилось побороть? Столкнулся со схожей проблемой и в итоге ступор.
qman
andrulik
Получилось побороть? Столкнулся со схожей проблемой и в итоге ступор.
времени не хватило разобраться.
Смотри тут http://forum.script-coding.info/viewtopic.php?id=2000
там помогут переделать с офтопика на питон.
рабочий код на питоне потом отпиши сюда, плиз .
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB