簡體   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