2016-06-03 3 views
0

Windows 2012 R2 서버와 LDAP 서버가 있습니다. 나는 사용자의 암호를 수정하는 파이썬 스크립트를 작성했다. (관리자가 아닌 사용자는 자신의 암호를 수정하고 싶다. 관리자가되었을 때 암호를 수정하는 다른 기능이 있지만 나는 원하지 않는다. 암호를 설정하고 수정하십시오). 이 내 코드의 샘플입니다python LDAP 비밀번호 수정

#!/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('[email protected]', '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 : { '정보': '0000052D : AtrErr : DSID-03191083를, # 1 : \ n의 \의 T0 : 0000052D : DSID가-03191083, 문제 1,005 (CONSTRAINT_ATT_TYPE), 데이터 0, 감쇄기 9005a (를 unicodePwd) \ n ','DESC ''제약 위반 '}

I 함께 시도 디코딩/인 코드 또는 디코딩. passwd_s()도 작동하지 않습니다. Google에서 많은 검색을했는데 다른 사람들을위한 많은 솔루션을 찾았지만 나를 위해 일하지 않았습니다.

누군가가 나를 도울 수 있다면, 미리 감사드립니다.

답변

2

초점을 맞추려는 오류 메시지 부분은 'info': '0000052D입니다.

ERROR_PASSWORD_RESTRICTION

1325 (0x52D) 암호를 업데이트 할 수 없습니다

: 16 진수 값 0000052D은 그 오류 코드가 here를 문서화 진수 1325의 시스템 오류 코드로 변환합니다. 새 암호에 제공된 값이 도메인의 길이, 복잡성 또는 내역 요구 사항 을 충족하지 않습니다.

이렇게 설정하려는 새 암호가 사용자에게 할당 된 암호 정책을 위반하는 것으로 보입니다.

+0

숫자, 대문자 및 기호와 함께 매우 긴 암호를 제공하더라도 항상 같은 문제가 있습니다. 내 사용자가 어떤 그룹에도 속해 있지 않습니다. 관리자 인 경우에만 암호를 변경할 수 있습니다. – julien2313

+0

감사합니다. GPO에 문제가있었습니다. 나는 그들을 바꾼다. 자, 0x56 오류가 있지만 잘 진행됩니다! – julien2313