Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
In diesem Artikel wird beschrieben, wie Sie den DirectoryServices Namespace verwenden, um dem lokalen System und einer Gruppe in Visual C# einen Benutzer hinzuzufügen.
Originalproduktversion: Visual C#
Ursprüngliche KB-Nummer: 306273
Zusammenfassung
In diesem schrittweisen Artikel wird erläutert, wie Sie den DirectoryServices Namespace verwenden, um dem lokalen System und einer Gruppe einen Benutzer hinzuzufügen.
Erstellen des Beispiels
Starten Sie Visual Studio .NET 2003, Visual Studio 2005 oder Visual Studio 2008, und erstellen Sie dann ein neues Visual C#-Konsolenanwendungsprojekt.
Klicken Sie in Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie dann auf "Verweis hinzufügen".
Fügen Sie einen Verweis auf die
System.DirectoryServices.dllAssembly hinzu.Ersetzen Sie den Code in der datei Class1.cs durch den folgenden Code.
Notiz
In Visual C# 2005 oder Visual C# 2008 wird die Class1.cs Datei durch die Program.cs-Datei ersetzt.
using System; using System.DirectoryServices; class Class1 { static void Main(string[] args) { try { DirectoryEntry AD = new DirectoryEntry("WinNT://" + Environment.MachineName + ",computer"); DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user"); NewUser.Invoke("SetPassword", new object[] {"#12345Abc"}); NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"}); NewUser.CommitChanges(); DirectoryEntry grp; grp = AD.Children.Find("Guests", "group"); if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});} Console.WriteLine("Account Created Successfully"); Console.ReadLine(); } catch (Exception ex) { Console.WriteLine(ex.Message); Console.ReadLine(); } } }Kompilieren Sie das Projekt, und führen Sie es aus.
Führen Sie die folgenden Schritte auf einem Windows 2000-basierten Computer aus, um zu überprüfen, ob das Konto erstellt und der Gastgruppe hinzugefügt wurde:
- Zeigen Sie im Startmenü auf "Programme", zeigen Sie auf "Verwaltungstools", und klicken Sie dann auf "Computerverwaltung".
- Klicken Sie, um den Knoten "Lokale Benutzer und Gruppen " zu erweitern. Das neue Konto sollte unter dem Knoten "Benutzer" sowie unter dem Knoten für die Gastgruppe angezeigt werden.
Führen Sie die folgenden Schritte auf einem Windows XP-basierten Computer aus, um zu überprüfen, ob das Konto erstellt und der Gastgruppe hinzugefügt wurde:
- Klicken Sie im Menü Start auf Systemsteuerung.
- Doppelklicken Sie auf Benutzerkonten. Das neue Benutzerkonto sollte im Dialogfeld "Benutzerkonten " angezeigt werden.
Wichtig
Entfernen Sie das neu erstellte Benutzerkonto aus dem System, nachdem Sie den Test abgeschlossen haben.
Erstellen eines neuen Verzeichniseintrags
Wenn Sie den Verzeichniseintrag in diesem Beispiel erstellen, wird davon ausgegangen, dass das System Windows NT, Windows 2000 oder Windows XP ausführt.
Notiz
Die an den DirectoryEntry Konstruktor übergebene Zeichenfolge beginnt mit "WinNT://". Sie können verzeichnisdienste auch auf anderen Betriebssystemen von Drittanbietern ausführen.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
Hinzufügen des Verzeichniseintrags zur Verzeichnisstruktur
Der folgende Code fügt einen DirectoryEntry Typbenutzer mit dem Wert der TestUser1 Active Directory-Struktur hinzu.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
Festlegen des Kennworts und der Beschreibung für das neue Benutzerkonto
Der folgende Code ruft die Invoke-Methode auf, um die SetPassword Methoden Put des DirectoryEntry Objekts aufzurufen. Dadurch wird das Kennwort festgelegt und dem Benutzerkonto eine Beschreibung zugewiesen. Dieser Code ruft auch die Methode zum Speichern der CommitChanges Änderungen auf.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();
Hinzufügen des Kontos zu einer Gruppe
Führen Sie die folgenden Schritte aus, um das Konto zu einer Gruppe hinzuzufügen:
- Definieren sie eine Variable vom Typ
DirectoryEntry. - Rufen Sie die
FindMethode desChildrenElements derActiveDirectoryKlasse auf, um die Variable aufzufüllen. In diesem Fall ist die Gastgruppe das Ziel der Suche. Dieser Code testet den Wert, den dieFindMethode zurückgibt, um festzustellen, ob die Gruppe gefunden wurde. Wenn die Gruppe gefunden wird, wird das neue Benutzerkonto der Gruppe hinzugefügt.
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
Problembehandlung
Der Code in diesem Artikel schlägt fehl, wenn Sie versuchen, den Code ohne ausreichende Berechtigungen zum Erstellen eines Benutzerkontos auszuführen. Damit der Code erfolgreich abgeschlossen werden kann, muss der aktuell angemeldete Benutzer Mitglied der Gruppe "Administratoren" sein oder über bestimmte Berechtigungen verfügen, mit denen der Benutzer Benutzerkonten erstellen kann.