LDAP3 模块获得超过 1000 个结果或备选方案
LDAP3 Module getting more than 1000 results or alternatives
# import class and constants
from ldap3 import Server, Connection, ALL, SUBTREE
# define the server
s = Server(host='xyz', port=xxxx, use_ssl=True, get_info='ALL')
c = Connection(s, auto_bind='NONE', version=3, authentication='ANONYMOUS', client_strategy='SYNC', auto_referrals=True, check_names=True, read_only=False, lazy=False, raise_exceptions=False)
c.bind()
results = c.extend.standard.paged_search(
search_base = 'Ou=XYZ,dc=org,dc=com',
search_filter = '(AppID=*)',
search_scope = SUBTREE,
get_operational_attributes=True,
attributes=['*'],
generator=True,
paged_size=None
)
i=0
for entries in results:
print(entries)
i+=1
print(i)
我正在尝试连接到特定端口上的服务器并进行匿名 SSL 身份验证。我已经编写了上面的脚本来获取 "AppID=*" 的结果。我只能打印 1000 条记录,之后我 运行 出现以下错误:
Traceback (most recent call last): File "C:/Fetch data.py", line 43,
in
for entries in results: File "C:\Users\xyz\AppData\Local\Programs\Python\Python36\lib\site-packages\ldap3\extend\standard\PagedSearch.py",
line 75, in paged_search_generator
raise LDAPOperationResult(result=result['result'], description=result['description'], dn=result['dn'],
message=result['message'], response_type=result['type'])
ldap3.core.exceptions.LDAPSizeLimitExceededResult:
LDAPSizeLimitExceededResult - 4 - sizeLimitExceeded - None - None -
searchResDone - None
我已经尝试了提供的解决方案
我试过阅读文档 LDAP3 Docs 但没有成功。有没有办法读取完整的输出。 (我想有超过 5k 条记录)
这里的问题是您的代码会生成生成器对象。
from ldap3 import Server, Connection, SUBTREE
import ldap3
total_entries = 0
# define the server
s = Server(host='xyz', port=xxxx, use_ssl=True, get_info=ldap3.NONE)
c = Connection(s,authentication='ANONYMOUS')
# subtitute your filter here
filter = '(&(objectClass=group)(sAMAccountName=))'
entry_generator = c.extend.standard.paged_search(search_base = 'Ou=XYZ,dc=org,dc=com',
search_filter = filter,
search_scope = SUBTREE,
get_operational_attributes=True,
attributes = ['*'],
paged_size = 1000,
generator=True)
for entry in entry_generator:
total_entries += 1
print(entry['dn'], entry['attributes'])
print('Total entries retrieved:', total_entries)
这应该会为您提供所需的所有详细信息。
参考 ldap3 documents.
# import class and constants
from ldap3 import Server, Connection, ALL, SUBTREE
# define the server
s = Server(host='xyz', port=xxxx, use_ssl=True, get_info='ALL')
c = Connection(s, auto_bind='NONE', version=3, authentication='ANONYMOUS', client_strategy='SYNC', auto_referrals=True, check_names=True, read_only=False, lazy=False, raise_exceptions=False)
c.bind()
results = c.extend.standard.paged_search(
search_base = 'Ou=XYZ,dc=org,dc=com',
search_filter = '(AppID=*)',
search_scope = SUBTREE,
get_operational_attributes=True,
attributes=['*'],
generator=True,
paged_size=None
)
i=0
for entries in results:
print(entries)
i+=1
print(i)
我正在尝试连接到特定端口上的服务器并进行匿名 SSL 身份验证。我已经编写了上面的脚本来获取 "AppID=*" 的结果。我只能打印 1000 条记录,之后我 运行 出现以下错误:
Traceback (most recent call last): File "C:/Fetch data.py", line 43, in for entries in results: File "C:\Users\xyz\AppData\Local\Programs\Python\Python36\lib\site-packages\ldap3\extend\standard\PagedSearch.py", line 75, in paged_search_generator raise LDAPOperationResult(result=result['result'], description=result['description'], dn=result['dn'], message=result['message'], response_type=result['type']) ldap3.core.exceptions.LDAPSizeLimitExceededResult: LDAPSizeLimitExceededResult - 4 - sizeLimitExceeded - None - None - searchResDone - None
我已经尝试了提供的解决方案
我试过阅读文档 LDAP3 Docs 但没有成功。有没有办法读取完整的输出。 (我想有超过 5k 条记录)
这里的问题是您的代码会生成生成器对象。
from ldap3 import Server, Connection, SUBTREE
import ldap3
total_entries = 0
# define the server
s = Server(host='xyz', port=xxxx, use_ssl=True, get_info=ldap3.NONE)
c = Connection(s,authentication='ANONYMOUS')
# subtitute your filter here
filter = '(&(objectClass=group)(sAMAccountName=))'
entry_generator = c.extend.standard.paged_search(search_base = 'Ou=XYZ,dc=org,dc=com',
search_filter = filter,
search_scope = SUBTREE,
get_operational_attributes=True,
attributes = ['*'],
paged_size = 1000,
generator=True)
for entry in entry_generator:
total_entries += 1
print(entry['dn'], entry['attributes'])
print('Total entries retrieved:', total_entries)
这应该会为您提供所需的所有详细信息。 参考 ldap3 documents.