Python LDAP修改密码
我有一个Windows 2012 R2服务器和一个LDAP服务器。我编写了一个python脚本来修改用户的密码(不是管理员的用户想要修改的是自己的密码。我还有一个函数,当你是管理员时可以修改密码,但我不想设置密码,而是修改它)。这是我的代码示例:Python LDAP修改密码,python,passwords,ldap,Python,Passwords,Ldap,我有一个Windows 2012 R2服务器和一个LDAP服务器。我编写了一个python脚本来修改用户的密码(不是管理员的用户想要修改的是自己的密码。我还有一个函数,当你是管理员时可以修改密码,但我不想设置密码,而是修改它)。这是我的代码示例: ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER) ld = ldap.initialize('ldaps://XXX:636') ld.simple_bind_s('X
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ld = ldap.initialize('ldaps://XXX:636')
ld.simple_bind_s('XXXXXXXX@ad2012.local', 'ZZZZZ')
new = {'unicodePwd':[str('"YYYYY"').decode('utf8').encode('utf-16-le')]}
old = {'unicodePwd':[str('"ZZZZZ"').decode('utf8').encode('utf-16-le')]}
ldif = modlist.modifyModlist(old, new)
ld.modify_s('A DN',ldif)
但是当我运行它时,我有一个错误(在最后一行):
{'info':'00000056:ATERRR:DSID-03191083,#1:\n\t0:00000056:DSID-03191083,问题1005(约束类型),数据0,ATT 9005a(UnicodeWD)\n','desc':'约束冲突'}
我检查了错误:
“指定的网络密码不正确。”
但是,我使用相同的密码连接到用户以进行更改。
我试过用双引号,用utf-8,输入一个非常糟糕的旧密码。。。但是没有什么改变,我总是有同样的错误
如果有人能帮助我,请提前感谢。我实现了更改密码,下面是代码:
#!/usr/bin/env python
#coding:utf-8
import ldap
import ldap.modlist as modlist
ldap.set_option(ldap.OPT_X_TLS_REQUIRE_CERT, ldap.OPT_X_TLS_NEVER)
ld = ldap.initialize('ldaps://XXX:636')
ld.simple_bind_s('XXX@ad2012.local', 'XXX')
newpassword = 'YYY'
oldpassword = 'ZZZ'
newpassword = unicode('\"' + newpassword + '\"').encode('utf-16-le')
oldpassword = unicode('\"' + oldpassword + '\"').encode('utf-16-le')
pass_mod = [(ldap.MOD_DELETE, 'unicodePwd', [oldpassword]), (ldap.MOD_ADD, 'unicodePwd', [newpassword])]
result = ld.modify_s('A DN', pass_mod)
我希望它能帮助别人D