【问题标题】:Error 53 when updating Active Directory password with Ruby使用 Ruby 更新 Active Directory 密码时出现错误 53
【发布时间】:2013-04-20 05:17:32
【问题描述】:

我在尝试向使用 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"'

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

【问题讨论】:

    标签: ruby active-directory


    【解决方案1】:

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

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

    【讨论】:

    • 谢谢。看来我是想太聪明了一半。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-22
    相关资源
    最近更新 更多