我在尝试为使用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"'
想知道是否有人有任何有用的东西,他们可以指出我可能会失踪。
答案 0 :(得分:1)
您是否尝试过将编码运行到UTF-16LE?
def microsoft_encode_password pwd
ret = ""
pwd = "\"" + pwd + "\""
pwd.length.times{|i| ret+= "#{pwd[i..i]}\000" }
ret
end