我的脚本是这样的:
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。
有什么方法可以读取或获取活动目录的内容吗?
我的脚本是这样的:
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。
有什么方法可以读取或获取活动目录的内容吗?
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 测试
你应该真的需要阅读 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.