我的脚本是这样的:
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。
是否有任何方法可以读取或获取活动目录的内容?
答案 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.