使用Ruby更新Active Directory密码时出错53

时间:2013-04-20 05:17:33

标签: ruby active-directory

我在尝试为使用Ruby脚本创建的Active Directory帐户添加密码时遇到了一些麻烦。建立SSL连接:

ldap = LDAP::SSLConn.new(LDAP_HOST, SSL_PORT)

纯文本密码通过函数运行以返回基本64 UTF-16LE字符串。

def convert_to_unicode pwd
    unicode_pwd = pwd.encode("UTF-16LE")
    return Base64.encode64(unicode_pwd)
end

向AD添加条目不是问题,但只要输入密码就会返回错误53:不愿意执行。传递的密码符合AD要求,并且在通过bash脚本完成时不会出现任何问题。例如,通过convert_to_unicode运行以下内容应该返回一个引用的new_Password1以供AD设置。

'"new_Password1"'

想知道是否有人有任何有用的东西,他们可以指出我可能会失踪。

1 个答案:

答案 0 :(得分:1)

您是否尝试过将编码运行到UTF-16LE?

  def microsoft_encode_password pwd
    ret = ""
    pwd = "\"" + pwd + "\""
    pwd.length.times{|i| ret+= "#{pwd[i..i]}\000" }
    ret
  end