【发布时间】:2021-07-08 06:22:51
【问题描述】:
我在 python3.9 中使用 ldap3 库将所有成员和经理详细信息(包括经理的 displayName 和特定 AD 组的电子邮件)放入带有循环的列表中。
conn.search(search_base='OU=Groups,OU=US,DC=local,DC=test,DC=org',
search_filter='(&(objectClass=group)(cn=AD-GROUP-NAME))',
attributes=['managedBy','member'],
search_scope='SUBTREE'
)
我将上述结果中每个成员的结果传递到新的搜索中:
for entry in conn.entries:
for member in entry.managedBy:
conn.search(
search_base=member.split(",",2)[2], # Removes Fname & LName from distinguishedName
search_filter=f'(distinguishedName={member})',
attributes=['sAMAccountName','mail','displayName']
)
第二次搜索适用于 大多数 成员,除非 OU 中有空格,如下在经理的专有名称中:
CN=LName, FName,OU=管理员帐户,OU=Management,OU=US,DC=local,DC=test,DC=org
我尝试使用 \ 或 \\ 甚至将空格替换为 20 来逃避这种情况,但无法使其正常工作。
谢谢。
【问题讨论】:
标签: python python-3.x active-directory ldap ldap3