0

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

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

纯文本密码通过一个函数运行以返回一个 base 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"'

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

4

1 回答 1

1

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

  def microsoft_encode_password pwd
    ret = ""
    pwd = "\"" + pwd + "\""
    pwd.length.times{|i| ret+= "#{pwd[i..i]}\000" }
    ret
  end
于 2013-05-28T11:58:37.173 回答