Я пытаюсь выполнить эту задачу: изменить свой собственный пароль в ActiveDirectory с помощью программы Go и пакета gopkg.in/ldap.v2
.
К сожалению, мой запрос на изменение заканчивается ошибкой 65 со следующим описанием:
"0000207D: UpdErr: DSID-031517D5, проблема 6002 (OBJ_CLASS_VIOLATION), данные 589914"
Код следующий:
var l *ldap.Conn
var err error
l, err = ldap.Dial(`tcp`, fmt.Sprintf(`%s:%d`, domain, 389))
if err != nil {
return false, err
}
defer l.Close()
err = l.Bind(logonUserName, currentPassword)
if err != nil {
return false, err
}
utf16 := unicode.UTF16(unicode.LittleEndian, unicode.IgnoreBOM)
encoded, err := utf16.NewEncoder().String(`"`+newPassword+`"`)
baseDN := "DC=contoso,DC=com"
modifyReq := ldap.NewModifyRequest(baseDN)
modifyReq.Replace("unicodePwd", []string{encoded})
err = l.Modify(modifyReq)
if err != nil {
return false, err
}
Я нашел некоторую информацию в этой теме: https://stackoverflow.com/a/37355844/1268795
Чего мне не хватает?