Linux上で実行されているRubyLDAPを使用すると、問題なく新しいActiveDirectoryユーザーアカウントを作成できます。ここで、ユーザーアカウントのユーザー名の名前を変更したいと思います。
を変更しようとするとsAMAccountName
、機能しません。Ruby LDAPを使用してADユーザーアカウントを変更することはできますか?もしそうなら、どのように?
Linux上で実行されているRubyLDAPを使用すると、問題なく新しいActiveDirectoryユーザーアカウントを作成できます。ここで、ユーザーアカウントのユーザー名の名前を変更したいと思います。
を変更しようとするとsAMAccountName
、機能しません。Ruby LDAPを使用してADユーザーアカウントを変更することはできますか?もしそうなら、どのように?
「動作しません」と言ったときに返されるエラーは何ですか? sAMAccountName
接続が最初に管理ユーザー (つまり、前述のエントリおよびエントリ属性を変更する権限を持つユーザー) として認証されていれば、LDAP クライアントまたはライブラリを使用する値を完全に変更できるはずです。
アップデート
エラー メッセージから、 の変更のみを試みると主張しているにもかかわらずsAMAccountName
、 の変更CN
も試みられたか、CN
特殊な ( の一部であるDN
) ことがわかります。
を変更するには、CN
おそらく を使用して の一部のmodrdn
名前を変更する必要があります(標準化された に相当するもの):CN
DN
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)
これは1歳だと思いますが、とにかく答えます。
RailsアプリでActiveLdapを使用しています...その背後にあるRuby/LDAPジェムを使用しています。私のコードでは次のことができます。
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メソッドを使用してみることもできますが、アカウントの名前変更にも使用できます。