2013-04-20 102 views
0

尝试向使用Ruby脚本创建的Active Directory帐户添加密码时遇到了一些问题。 SSL连接建立于:使用Ruby更新Active Directory密码时发生错误53

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

您是否尝试过仅对UTF-16LE运行编码?

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

这是它的感谢。看起来我正在努力过于聪明。 – Pseudomonkey 2013-08-22 01:19:41

+0

没问题!听说它很有效。 :) – GLindqvist 2013-09-11 11:44:29

相关问题