繁体   English   中英

是否可以使用Ruby LDAP更改AD用户帐户?

[英]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重命名DNCN部分( 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM