我想创建一个用于更改用户密码但不知道现有密码的脚本,因此就像将密码重置为新密码一样。
这是我的脚本使用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
如果有人可以帮助我,请提前谢谢。
答案 0 :(得分:0)
我假设您正在尝试更改Active Directory域中的密码。 首先,您必须检查bind()方法的结果。如果bind不成功,则会获得匿名连接,并且您无法对password属性执行任何操作。
此外,您必须建立安全连接以更改密码,尝试在服务器对象中设置use_ssl = True,或者在conn.bind()之后尝试conn.start_tls()。
最后但更重要的是,新密码是modify_password()的第二个参数,而不是第三个参数。