在搜索成员之前,必须先从组本身下拉成员列表。conn.search(
search_base='CN=GROUPNAME,OU=Groups,OU=Resources,OU=Global,DC=adserver.com',
search_filter='(objectClass=group)',
search_scope=SUBTREE,
attributes = ['member']
)
for entry in conn.entries:
print(entry.member.values)
这将以可分辨名称打印出成员列表。
然后需要执行一个新的搜索,该搜索遍历每个成员并返回每个成员的sAMAccountName。
下面是完整代码的外观(可能需要调整):conn.search(
search_base='CN=GROUPNAME,OU=Groups,OU=Resources,OU=Global,DC=adserver.com',
search_filter='(objectClass=group)',
search_scope=SUBTREE,
attributes = ['member']
)
for entry in conn.entries:
for member in entry.member.values:
conn.search(
search_base='OU=Global,DC=adserver.com'',
search_filter=f'(distinguishedName={member})',
attributes=[
'sAMAccountName'
]
)
user_sAMAccountName = conn.entries[0].sAMAccountName.values
print(user_sAMAccountName)