Ausgangspunkt dieses Artikels war ein Gespräch vor ein paar Tagen:

Es wäre schön, wenn wir jedem unserer Mitarbeiter eine Mitarbeiter-Nummer im ActiveDirectory vergeben könnten.

Ich googelte im Internet und fand diesen Artikel auf InformIT.
Er erklärt recht gut, wie man die Mitarbeiter-Nummer in das passende MMC Active Directory Benutzer und Computer einbindet.

Allerdings war ich von der Darstellung nicht sonderlich begeistert: Ich wollte in den Eigenschaften der Mitarbeiter ein eigenes Tab haben. Zuerst suchte ich bei Microsoft und fand einige Dokumente auf den MSDN-Seiten. Allerdings hatte ich kein Nerv auf C++ und entschied mich, MMC 3.0 und .NET bzw. C# zu verwenden.

Mit der Installation des .NET Frameworks 3.5 sollte das MMC-Assembly mitinstalliert werden. Danach suchte ich mir im Internet ein paar Code-Schnippsel zusammen:
Auf einer französische Seite fand ich den Code zum rudimentären Erzeugen einer PropertyPage. Für die Benutzung des Codes muss das MMC-Assembly von C:\WINDOWS\system32\microsoft.managementconsole.dll eingebunden werden.
Mir stellte sich nun die Frage: Wie komme ich an den ausgewählten Benutzer heran?
Die Newsgroup microsoft.public.management.mmc war hilfreich. Ich hatte nun den LDAP-DN des ausgewählten Benutzers. Der Rest war trivial: Mit System.DirectoryServices stellte ich eine Verbindung zum Active Directory her und zog mir die Daten des Benutzers:

DirectoryEntry oUser = new DirectoryEntry(_searchDSN);
String employeeNumber = oUser.Properties["employeeNumber"].Value.ToString();

und konnte mit oUser.CommitChanges() meine Änderungen zurück in das Active Directory schreiben.

Mit Hilfe des Tools InstallUtil lässt sich das erstellte Assembly in der Registry verankern und benutzen.


0 Comments

Leave a Reply