2009-03-12 3 views
2

Mit Ruby LDAP unter Linux kann ich ein neues Active Directory Benutzerkonto ohne Probleme erstellen. Jetzt möchte ich den Benutzernamen eines Benutzerkontos umbenennen.Ist es möglich, ein AD-Benutzerkonto mit Ruby LDAP zu ändern?

Wenn ich versuche, die sAMAccountName zu ändern, funktioniert es nicht. Ist es möglich, ein AD-Benutzerkonto mit Ruby LDAP zu ändern? Wenn das so ist, wie?

+0

Max, hatten Sie Glück mit dem Befehl modrdn? – vladr

Antwort

4

Was ist der Fehler zurückgegeben, wenn Sie sagen, "funktioniert nicht"? Sie sollten durchaus in der Lage sein, den Wert von sAMAccountName unter Verwendung eines beliebigen LDAP-Client oder Bibliothek geändert werden, daß die Verbindung ursprünglich als Verwaltungs Benutzer authentifiziert wurde (dh ein Benutzer, der die Erlaubnis, die dem Eintrag und Eintrag-Attribut zu ändern.)


UPDATE

aus der Fehlermeldung erscheinen würde, die, obwohl Sie nur die Modifikation von sAMAccountName, eine Änderung der CN wurde auch versucht zu versuchen, Anspruch oder CN besondere ist (es ist Teil der DN.)

Um die CN Sie wahrscheinlich zu ändern modrdn zu verwenden, haben den CN Teil des DN (das standardisierte Äquivalent MoveHere) umbenennen:

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) 
0

Jede Chance, dass Sie einige Ihrer Code veröffentlichen können ? Sie können auch versuchen, die Methode MoveHere zu verwenden, die wirklich zum Verschieben von Benutzerkonten verwendet wird, aber auch zum Umbenennen eines Kontos verwendet werden kann.

1

Ich sehe, das ist ein Jahr alt, aber ich werde trotzdem antworten.

Ich benutze ActiveLdap in einer Rails App .... die den Ruby/LDAP Edelstein dahinter verwendet. Ich kann Folgendes in meinem Code tun.

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 

Sie sollten in der Lage sein, den ActiveLdap Code zu schauen und herauszufinden, wie sie es tun, dass durch Rubin/Ldap.

Was in ActiveLdap derzeit nicht funktioniert, ist jedoch 'newsuperior', daher gibt es derzeit keine Möglichkeit, ein Objekt von einem Container in einen anderen zu verschieben. Ich arbeite immer noch daran, das zu erreichen.

Matt

Verwandte Themen