2016-08-02 85 views
0

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

下面是一个使用我的脚本用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

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

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

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

相关问题