python LDAP修改密码

2024-06-25 23:08:16 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个Windows2012 R2服务器和一个LDAP服务器。我编写了一个python脚本来修改用户的密码(不是管理员的用户想要修改的是自己的密码)。我有另一个功能,当你是管理员时可以修改密码,但我不想设置密码,而是修改它)。这是我的代码示例:

#!/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.xxx.xxx.xxx:636')
ld.simple_bind_s('XXXXXX@ad2012.local', 'XXXXXXX')

new = {'unicodePwd':[str('"XXXXXXXX"').decode('utf8').encode('utf-16-le')]}
old = {'unicodePwd':[str('"YYYYYYYY"').decode('utf8').encode('utf-16-le')]}

ldif = modlist.modifyModlist(old, new)
ld.modify_s('A DN',ldif)

但当我运行它时,我有一个错误:

ldap.CONSTRAINT_VIOLATION: {'info': '0000052D: AtrErr: DSID-03191083, #1:\n\t0: 0000052D: DSID-03191083, problem 1005 (CONSTRAINT_ATT_TYPE), data 0, Att 9005a (unicodePwd)\n', 'desc': 'Constraint violation'}

我试过用解码/编码还是不用。passwd_s()也不起作用。 我在谷歌上搜索了很多,我找到了很多为别人解决问题的方法,但对我来说却不管用。在

如果有人能帮我,先谢谢你。在


Tags: 用户import服务器密码new管理员tlsldap
1条回答
网友
1楼 · 发布于 2024-06-25 23:08:16

您要关注的错误消息部分是'info': '0000052D。十六进制值0000052D转换为十进制1325的系统错误代码。错误代码被记录为here

ERROR_PASSWORD_RESTRICTION

1325 (0x52D)

Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain.

因此,您尝试设置的新密码似乎违反了分配给用户的密码策略。在

相关问题 更多 >