Hinzufügen eines Benutzers zum lokalen System mithilfe von Verzeichnisdiensten und Visual C sharp
In diesem Artikel wird beschrieben, wie Sie den DirectoryServices
Namespace verwenden, um dem lokalen System einen Benutzer und eine Gruppe in Visual C# hinzuzufügen.
Ursprüngliche Produktversion: Visual C#
Ursprüngliche KB-Nummer: 306273
Zusammenfassung
In diesem Schritt-für-Schritt-Artikel erfahren Sie, 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 im 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.dll
Assembly hinzu.Ersetzen Sie den Code in der Class1.cs-Datei durch den folgenden Code.
Hinweis
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 dann 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 Verwaltung, und klicken Sie dann auf Computerverwaltung.
- Klicken Sie hier, um den Knoten Lokale Benutzer und Gruppen zu erweitern. Das neue Konto sollte sowohl unter dem Knoten Benutzer als auch unter dem Knoten für die Gruppe Gast 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 Startmenü 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 auf dem System Windows NT, Windows 2000 oder Windows XP ausgeführt wird.
Hinweis
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 der Active Directory-Struktur einen DirectoryEntry
vom Typ user mit dem Wert von TestUser1
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 und Put
des DirectoryEntry
-Objekts aufzurufen. Dadurch wird das Kennwort festgelegt und dem Benutzerkonto eine Beschreibung zugewiesen. Dieser Code ruft auch die CommitChanges
-Methode auf, um die Änderungen zu speichern.
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 einer Gruppe hinzuzufügen:
- Definieren Sie eine Variable vom Typ
DirectoryEntry
. - Rufen Sie die
Find
-Methode desChildren
Members derActiveDirectory
-Klasse auf, um die Variable aufzufüllen. In diesem Fall ist die Gastgruppe das Ziel der Suche. Dieser Code testet den Wert, den dieFind
Methode zurückgibt, um festzustellen, ob die Gruppe gefunden wurde. Wenn die Gruppe gefunden wird, wird der Gruppe das neue Benutzerkonto 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 die erforderlichen 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, die es dem Benutzer ermöglichen, Benutzerkonten zu erstellen.
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für