首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python活动目录模块pyad max返回组成员

python活动目录模块pyad max返回组成员
EN

Stack Overflow用户
提问于 2019-07-02 14:09:15
回答 1查看 1.8K关注 0票数 0

如果组成员超过1500时,如何返回所有组成员,我在组中使用下面使用的代码使用execute_query成员属性为空

代码语言:javascript
复制
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.from_cn只返回第一个1500个用户

代码语言:javascript
复制
f = pyad.pyad.from_cn('Group Name')
f.get_attribute('member') or f.get_members()  --> both return only 1500 Users
EN

回答 1

Stack Overflow用户

发布于 2019-07-02 15:17:00

这个限制不是来自于pyad,而是来自AD本身。将只为您提供来自多值属性的1500行。为了得到剩下的,你必须特别要求更多。

我还没有在Python中尝试过这种方法,但是要想获得下一个1500版本,您应该可以这样做:

代码语言:javascript
复制
f.get_attribute('member;range=1500-*')

试试看它是否有效。

查看Pyad源代码,这可能实际上不起作用(因为hasattr检查,它在检查属性是否有效时可能不会删除“范围”部分)。还有为此记录的问题,它还没有得到回复。而且,由于不再维护项目,它不太可能得到修复,除非您分叉并自己修复它(它应该和删除hasattr检查一样容易)。

但是,如果这种情况确实有效,则必须将其放入循环中,然后继续运行,直到得到错误为止,这意味着没有更多的结果。我在C# 这里中有一个例子。您可以将循环中的逻辑转换为Python。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56854376

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档