AD_DNS_NAME = xx.xxxxxx.org'
AD_LDAP_URL = 'ldap://%s' % (AD_DNS_NAME)
con = ldap.initialize(AD_LDAP_URL)
username = 'john'
password = '123'
base_dn = 'OU=Domain Users,DC=xx,DC=xxxxx,DC=org'
filter = '(sAMAccountName=' + username + ')'
attrs = ['mail']
dn = '%s@%s' % (username, AD_DNS_NAME)
try:
con.simple_bind_s(dn, password)
my_search = con.search_s(base_dn, ldap.SCOPE_SUBTREE, filter , attrs )
# my_search return
#[('CN=john,OU=x_x_x xx,OU=xxxxxx,OU=CN BU,OU=Domain Users,DC=xx,DC=xxxxxx,DC=org', {'mail': ['john@xxxxxx.com.cn']})]
上面的代码可以搜索某个名为“john”的用户的信息,但是我不知道如何从一个邮件组中获取所有成员的名字,谁知道如何做到这一点?例如,我想搜索一个组命名为“所有的AAA”
我将 attrs 设置为 null 并获取以下所有信息:我删除了一些其他不重要的信息
[
('CN=John,OU=C_E_S XX,OU=Mycity,OU=CN BU,OU=Domain Users,DC=xx,DC=xxxxxx,DC=org',
{
'mailNickname': ['John'],
'primaryGroupID': ['513'],
'memberOf': [ 'CN=All of AAA,OU=CN BU,OU=Distribution List,OU=Exchange,DC=xx,DC=xxxxxx,DC=org', ],
}
)
]
你能告诉我如何设置过滤器:filter = '(&(objectClass=group)(CN=groupname))' set group='memberOf' and groupname='All of AAA' ???,我试过了这但它没有帮助
我已经解决了这个问题,现在我写下方法:
filter = "(&(objectCategory=person)(objectClass=user)(memberOf=CN=All of AAA,OU=CN BU,OU=Distribution List,OU=Exchange,DC=xx,DC=xxxxxx,DC=org))"