【发布时间】:2014-01-02 03:06:18
【问题描述】:
如何使用 Python 更改域用户的密码?我有 ldap 模块,但没有解决方案。我设法通过ldap查询了当前的设置,但是如何修改呢?
import ldap
import sys
host = 'ldap://10.172.0.79'
con = ldap.initialize(host)
BIND_DN = "administrator@biztalk.com"
BIND_PASS = "a-123456"
con.set_option( ldap.OPT_X_TLS_DEMAND, True )
con.set_option( ldap.OPT_DEBUG_LEVEL, 255 )
PASSWORD_ATTR = "unicodePwd"
username="bizadmin"
user_dn = "CN=%s,OU=User,OU=biztalk,DC=biz-talk,DC=com" % username
password = 'New12345'
# Set AD password
unicode_pass = unicode("\"" + password + "\"", "iso-8859-1")
password_value = unicode_pass.encode("utf-16-le")
add_pass = [(ldap.MOD_REPLACE, PASSWORD_ATTR, [password_value])]
# Replace password
try:
con.modify_s(user_dn, add_pass)
print "Active Directory password for", username, "was set successfully!"
except ldap.LDAPError, e:
sys.stderr.write('Error setting AD password for: ' + username + '\n')
sys.stderr.write('Message: ' + str(e) + '\n')
sys.exit(1)
错误
pydev 调试器:启动
设置 AD 密码时出错:bizadmin
消息:{'desc':“无法联系 LDAP 服务器”}
Python 更改域(Microsoft Active Directory)用户的密码。
...需要 python 和域之间的认证服务?
你有什么好的方法来处理它吗?
谢谢!
【问题讨论】:
标签: python active-directory ldap