使用在Linux上运行的Ruby LDAP,我可以毫无问题地创建新的Active Directory用户帐户。现在我想重命名用户帐户用户名。
当我尝试更改sAMAccountName
时,它无效。是否可以使用Ruby LDAP更改AD用户帐户?如果是这样,怎么样?
答案 0 :(得分:4)
当您说“不起作用”时,返回的错误是什么?您应该完全有能力使用任何LDAP客户端或库来更改sAMAccountName
的值,前提是该连接最初被验证为管理用户(即具有更改所述条目和条目属性的权限的用户)。
<强>更新强>
从错误消息中可以看出,虽然您声称只尝试修改sAMAccountName
,但也尝试更改CN
,或CN
是特殊的(它是DN
的一部分。)
要更改CN
,您可能需要使用modrdn
重命名CN
的{{1}}部分(DN
的标准化等效内容}):
MoveHere
答案 1 :(得分:1)
我觉得这已经有一年了,但无论如何我都会回答。
我在Rails应用程序中使用ActiveLdap ....它使用后面的Ruby/LDAP gem。我可以在我的代码中执行以下操作。
aduser = User.find("matt")
puts aduser.cn
# prints 'matt'
puts aduser.distinguishedname
# prints 'cn=matt,ou=here,dc=my,dc=domain'
# THIS RENAMES THE ACCOUNT AND AUTOMATICALLY HANDLES ALL THE ATTRIBUTES
# THAT NEED TO CHANGE... e.g. name, cn, distinguishedname, dn
aduser.cn = "newmatt"
aduser.save
您应该能够查看ActiveLdap代码,并通过Ruby / Ldap找出它们是如何做到的。
当前在ActiveLdap中不起作用的是'newsuperior',因此目前没有办法将对象从一个容器移动到另一个容器。我还在研究如何实现这一目标。
马特
答案 2 :(得分:0)
你有可能发布一些代码吗?您也可以尝试使用真正用于移动用户帐户的MoveHere方法,但也可以用来重命名帐户。