Code-Beispiel
Ein Beispiel zum Einsatz der Klasse System.DirectoryServices.DirectoryEntry aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Eine hervorstechende Eigenschaft des Active Directory im Vergleich zum Windows NT4-Benutzerverwaltungssystem ist es, beliebige Organisationsstrukturen in Form von Verzeichnis-Containern nachzubilden. Ein solcher Container heißt im AD Organisationseinheit (Klasse "OrganizationalUnit").
Beachten Sie bei der Anlage von Organisationseinheiten im Vergleich zur Anlage von Benutzern den anderen Klassennamen ("organizationalUnit") im ersten Parameter und den anderen Attributnamen (OU) im zweiten Parameter bei Add(). Es gibt keine Pflichtattribute.
Beispiel
In dem folgenden Beispiel wird eine Organisationseinheit "BASTA" angelegt. Als freiwillige Attribute werden die Stadt ("l") und die Beschreibung ("Description") festgelegt.
Programmcodebeispiele Visual Basic .NET (VB.NET)
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' Anlegen einer Organisationseinheit im AD
' (C) Holger@Schwichtenberg.de
' ============================
Sub ADS_OUanlegen()
Dim r As DirectoryEntry
Dim o As DirectoryEntry
out("# Anlegen der OU: " & LDAPbasta)
' --- Zugriff auf Container
r = New DirectoryEntry(LDAProot)
' --- Untereintrag anlegen
o = r.Children.Add(OU, "organizationalUnit")
' --- freiwillige Attribute setzen
o.Properties("l").Add("Frankfurt")
o.Properties("Description") _
.Add("Entwickler-Fachkonferenz")
' --- Änderungen speichern
o.CommitChanges()
out("OU angelegt! " & o.Path)
End Sub
Programmcodebeispiele CSharp (C#)
using System;
using System.DirectoryServices;
using ActiveDs;
namespace FCLBuch._SystemDirectoryServices {
public class Samples_ADSI {
public void ADS_OUanlegen() {
// Anlegen eines Organisationseinheit im AD
FclOutput.PrintOut("# Anlegen der OU: " + LDAPbasta);
// Zugriff auf Container
DirectoryEntry r = new DirectoryEntry(LDAProot);
// Untereintrag anlegen
DirectoryEntry o = r.Children.Add(OU, "organizationalUnit");
// freiwillige Attribute setzen
o.Properties["l"].Add("Frankfurt");
o.Properties["Description"].Add("Entwickler-Fachkonferenz");
// Änderungen speichern
o.CommitChanges();
FclOutput.PrintOut("OU angelegt! " + o.Path);
}
}
}
Hinweise
Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und
PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung
von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B.
Console.WriteLine() einsetzen.
Querverweise
Liste aller Codebeispiele
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.DirectoryServices.DirectoryEntry'
Übersicht über den FCL-Namensraum 'System.DirectoryServices'
.NET & Visual Studio Community Portal