修改用户密码而不知道现有密码

时间:2016-08-02 15:03:10

标签: python ldap

我想创建一个用于更改用户密码但不知道现有密码的脚本,因此就像将密码重置为新密码一样。

这是我的脚本使用python和ldap3

from ldap3 import *
server = Server('myldapserver.com', get_info=ALL)
the_user = 'cn=Manager,dc=domain,dc=com'
conn = Connection(server, the_user, password='adminpass')
conn.bind()

user = 'cn=testuser,ou=People,dc=domain,dc=com'
conn.extend.microsoft.modify_password('cn=testuser,ou=People,dc=domain,dc=com', None, 'newpassword')
print(conn.result)

但它给了我错误:

ldap3.core.exceptions.LDAPAttributeError: invalid attribute type in attribute

如果有人可以帮助我,请提前谢谢。

1 个答案:

答案 0 :(得分:0)

我假设您正在尝试更改Active Directory域中的密码。 首先,您必须检查bind()方法的结果。如果bind不成功,则会获得匿名连接,并且您无法对password属性执行任何操作。

此外,您必须建立安全连接以更改密码,尝试在服务器对象中设置use_ssl = True,或者在conn.bind()之后尝试conn.start_tls()。

最后但更重要的是,新密码是modify_password()的第二个参数,而不是第三个参数。

相关问题