2016-06-27 87 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