4

我的脚本是这样的:

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。

有什么方法可以读取或获取活动目录的内容吗?

4

2 回答 2

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 测试

于 2014-05-13T11:53:02.543 回答
0

你应该真的需要阅读 python-ldap http://www.python-ldap.org/docs.shtml的文档

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.
于 2013-05-15T06:17:20.630 回答