В настоящее время я пытаюсь изменить пароль пользователя в AD с Python (3) и модулем LDAP.
Когда мой сценарий закончен, все выглядит нормально.
Однако пароль тот же, что и раньше.
Вот мой сценарий:
LDAP_SERVER = <domain>
LDAP_USERNAME = <admin_username>
LDAP_PASSWORD = <admin_password>
dn = <DN>
quoted_new_password = '\"' + <new_password> + '\"'
quoted_new_password_bytes = quoted_new_password.encode('UTF-16LE')
ldap_client = ldap.initialize(LDAP_SERVER)
ldap_client.set_option(ldap.OPT_REFERRALS, 0)
ldap_client.simple_bind_s(LDAP_USERNAME, LDAP_PASSWORD)
ad_user_filter = '(&(objectClass=user)(sAMAccountName=<username-for-password-modification>))'
res = ldap_client.search_s(dn, ldap.SCOPE_SUBTREE, ad_user_filter)
user_dn = (res[0][1]['distinguishedName'][0]).decode("utf-8")
modlist = [ (ldap.MOD_REPLACE, "userPassword", quoted_new_password_bytes)]
ldap_client.modify_s(user_dn, modlist)
В результате получается кортеж типа
(<number>, [], <number>, [])
Затем, когда я пытаюсь подключить AD (с тем же доменом), старый пароль работает, но не новый.
Я что-то забыл?
Заранее спасибо!
РЕДАКТИРОВАТЬ: Результат такой же, когда я, например, добавляю пустую строку в качестве нового пароля, даже если моя AD требует не менее 14 символов.
РЕДАКТИРОВАТЬ: последний результат "modify_s" является
(103, [], 3, [])
Однако код 103 ни к чему не соответствует ...