如何使用python-ldap读取活动目录的内容?

时间:2012-11-16 04:40:37

标签: python-2.7 python-ldap

我的脚本是这样的:

import ldap, sys
server = 'ldap://my_server'
l = ldap.initialize(server)
dn="myname@mydomain"
pw = "password"
l.simple_bind_s(dn,pw)
ldap.set_option(ldap.OPT_REFERRALS,0)
print "valid"

我在Windows上使用Python 2.7。

是否有任何方法可以读取或获取活动目录的内容?

2 个答案:

答案 0 :(得分:4)

使用win32com.client(我无法找到文档)也可以做很多事情。例如,我需要知道他的ADS_NAME_TYPE_NT4格式化名称(doman\jonjoe)来解析用户电子邮件。

首先,您需要将其转换为ADS_NAME_TYPE_1779格式(CN=Jeff Smith,CN=users,DC=Fabrikam,DC=com):

name_resolver = win32com.client.Dispatch(dispatch='NameTranslate')
name_resolver.Set(3, 'domain\\jonjoe')
ldap_query = 'LDAP://{}'.format(name_resolver.Get(1))

完成后,您只需致电GetObject()

ldap = win32com.client.GetObject(ldap_query)
print(ldap.Get('mail'))

使用Python 3.2.5

进行测试

答案 1 :(得分:0)

你真的需要阅读python-ldap3}}

的文档
You have a connection in your variable l, then you can do this.

l.con_search_s('dc=your,dc=base,dc=dit', ldap.SCOPE_SUBTREE, 'uid=*', ['uid', 'uidnumber'])

The above code, goint to search in to all the uid's entrys, for if entry, is going to get the uid and the uidnumbre attributes.