Active Directory LDAP将用户移动到不同的OU - Ruby

时间:2013-08-08 14:43:39

标签: ruby active-directory ruby-1.9 netldap

我在与Active Directory的集成方面遇到了麻烦。我需要能够将用户从一个OU移动到另一个OU。我正在使用net-ldap 0.5.0,它位于github master分支上并在源代码中挖出来,发现你可以做到这一点

$ldap.rename(
             olddn: "cn=bradford ricechip,ou=agents,ou=ihs,ou=test environment,dc=ctatechs,dc=com", 
             newrdn: "cn=bradford ricechip", 
             new_superior: "ou=coach,ou=ihs,ou=test environment,dc=ctatechs,dc=com"
) 

我得到了:#<OpenStruct code=53, error_message="00000057: LdapErr: DSID-0C090A95, comment: Old RDN must be deleted, data 0, v1772\x00", matched_dn="", message="Unwilling to perform"> 。我想我不明白如何删除旧的RDN然后将用户移动到新的OU。

这是我唯一的问题。如果我需要提供任何其他信息,请告诉我。提前感谢所有的帮助!

1 个答案:

答案 0 :(得分:2)

这就是我们解决它的方式:

@ldap.rename(
  olddn: user.dn, 
  newrdn: "CN=#{user.cn}", 
  delete_attributes: true, 
  new_superior: "#{new_ou}"
)

我们还在Github上使用了ldap-ruby的版本而不是RubyGems上的版本。