[英]Is it possible to change an AD user account using Ruby LDAP?
使用在Linux上运行的Ruby LDAP,我可以毫无问题地创建一个新的Active Directory用户帐户。 现在,我想重命名一个用户帐户的用户名。
当我尝试更改sAMAccountName
,它不起作用。 是否可以使用Ruby LDAP更改AD用户帐户? 如果是这样,怎么办?
当您说“不起作用”时,返回的错误是什么? 您应该完全有能力使用任何LDAP客户端或库来更改sAMAccountName
的值,前提是该连接最初是作为管理用户进行身份验证的(即,有权更改所述条目和条目属性的用户。)
UPDATE
从错误消息中可以看出,尽管您声称只尝试修改sAMAccountName
,但也尝试更改CN
,或者CN
是特殊的(它是DN
一部分)。
为了更改CN
您可能必须使用modrdn
重命名DN
的CN
部分( MoveHere
的标准等效MoveHere
):
conn.modrdn('CN=old-name,OU=orgunit,DC=domain', 'CN=new-name', true)
conn.modify('CN=new-name,OU=orgunit,DC=domain', 'sAMAccountName' => new-acct)
我看到这是一岁,但我还是会回答。
我在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”,因此当前没有一种将对象从一个容器移动到另一个容器的方法。 我仍在研究如何实现这一目标。
马特
您有机会发布一些代码吗? 另外,您可能想尝试使用MoveHere方法,该方法实际上用于移动用户帐户,但也可以用于重命名帐户。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.