[英]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.