pythonactivedirectory模块pyad max返回了组成员

2024-09-24 02:14:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我怎么能返回所有的组成员如果它超过1500,我使用下面的代码 在组中使用execute\u query member属性为空

import pyad.adquery
q = pyad.adquery.ADQuery()
q.execute_query(
attributes = ["CN", "sAMAccountName", "sAMAccountType", "name", "title", "distinguishedName", "mail", "managedBy", "member", "memberOf"][::-1],
where_clause = "{0} = '{1}'".format(query_attribute,query_value),
base_dn = "DC=domain,DC=company,DC=net",
)  --> Using execute_query member attribute is empty

result = list(q.get_results())[0]['member'] --> result is None

使用来自中国的pyad只有前1500名用户返回

^{pr2}$

Tags: 代码importexecute属性isattributeresultdc
1条回答
网友
1楼 · 发布于 2024-09-24 02:14:55

这个限制不是来自pyad,而是AD本身。Active Directory将只从多值属性中为您提供1500行。为了得到剩下的,你必须明确要求更多。在

我没有在Python中尝试过,但是要想获得下一个1500,您应该能够执行以下操作:

f.get_attribute('member;range=1500-*')

试试看是否有效。在

看一下Pyad source code可能不实际工作(因为hasattr检查,在检查属性是否有效时可能不会删除“range”部分)。还有一个an issue logged for this,尚未回复。而且既然是project is no longer maintained,除非你自己动手去修理它,否则它不太可能被修复(这应该和删除hasattr检查一样容易)。在

但如果这真的发生了,你就必须把它放到一个循环中,直到你得到一个错误,这意味着没有更多的结果。我有一个C#here的例子。您可以将循环中的逻辑转换为Python。在

相关问题 更多 >