2016-06-27 59 views
3

我想更改ldap用户的密码。脚本是:使用python-ldap更改密码

def changePassword(url,binddn,pw, newpw): 
l = ldap.initialize(url) 
ldap. 
try: 
    l.protocol_version=ldap.VERSION3 
    l.simple_bind_s(binddn,pw) 
except: 
    print "Error Bind in changePassword" 
    sys.exit(0) 

old = {'userPassword':pw} 
new = {'userPassword':newpw} 
ldif = modlist.modifyModlist(old,new) 
try: 
    l.modify_s(binddn,ldif) 
    l.unbind_s() 
except: 
    print "error" 

但是,当我调用这个函数,我收到“错误”。 当我更改密码时,我的LDAP有PPolicy用于要求当前密码。

如何更改此PPolicy的密码?

任何人都可以帮助我?

在此先感谢 达里奥

+0

如果你删除'尝试/除外' - 它是如何失败的?谢谢。 – alecxe

+0

如果首先删除'try/except'并且'l.modify_s'后我收到错误** ldap.UNWILLING_TO_PERFORM:{'info':'密码策略要求用户密码更改包括请求中的当前密码',' desc':'服务器不愿意执行'} ** – sixart

回答

0

也许您必须使用以下modlist [(ldap.MOD_REPLACE '的userPassword',[newpasswd])]直接在modify_s