【问题标题】:Error trying to use pyad to query accounts on another domain尝试使用 pyad 查询另一个域上的帐户时出错
【发布时间】:2018-08-28 09:09:21
【问题描述】:

我正在使用pyad 0.5.20 对活动目录执行许多操作,用户可以指定他们的连接详细信息,例如:

 pyad.set_defaults(ldap_server="my.server", username=myusername, password=xxx,ssl=False,ldap_port=123)

然后我可以通过它的名称检索一个组:

group = pyad.adgroup.ADGroup.from_cn(groupname)

我的问题是 pyad.adquery.ADQuery() 在指定连接详细信息后尝试使用它时出现错误

AttributeError: 'module' object has no attribute 'set_defaults'

这是完整的代码:

import pythoncom
pythoncom.CoInitialize()
import pyad.adquery
ad = Auth_Type_Config.query.filter_by(auth_type_id=2).first()
if ad:
    pyad.set_defaults(ldap_server=ad.host, username=ad.username,
                      password=ad.password, ssl=ad.is_ssl,
                      ldap_port=ad.port)
else:
    return jsonify({'msg': 'You must configure the authentication method for LDAP.'
                   , 'status': 'error'})

q = pyad.adquery.ADQuery()
where_clause = "SamAccountName = '{}'"
for (index, item) in enumerate(usernames, start=1):
    if index == 1:
        continue
    where_clause += " or SamAccountName = '{}'"

q.execute_query(attributes=['distinguishedName', 'mail', 'name',
                'SamAccountName'],
                where_clause=where_clause.format(*usernames),
                base_dn='CN=Users,DC=dsp,DC=local')

rows = []
for row in q.get_results():
    rows.append(row)
user = (rows[0] if len(rows) > 0 else None)
return rows

【问题讨论】:

    标签: python-2.7 flask active-directory pyad


    【解决方案1】:

    我想这有点晚了,但正确的函数似乎是 pyad.pyad_setdefaults 而不是 pyad.set_defaults

    【讨论】:

    • 我收到一个错误 AttributeError: module 'pyad' has no attribute 'aduser',有什么想法吗?
    猜你喜欢
    • 1970-01-01
    • 2011-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-07
    • 2014-05-26
    • 1970-01-01
    相关资源
    最近更新 更多