Sie sind zurzeit offline. Es wird auf die erneute Herstellung einer Internetverbindung gewartet.

Ihr Browser wird nicht unterstützt.

Sie müssen Ihren Browser aktualisieren, um die Website zu verwenden.

Aktualisieren Sie auf die neueste Version von Internet Explorer.

SO WIRD'S GEMACHT: Hinzufügen eines Benutzers zum lokalen System mit Verzeichnisdiensten und Visual C# .NET

Dieser Artikel wurde zuvor veröffentlicht unter D306273
Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
306273 HOW TO: Add a User to the Local System Using Directory Services and Visual C# .NET
Eine Microsoft Visual Basic .NET-Version dieses Artikels finden Sie unter Q306271.
Zusammenfassung
Dieser Artikel beschreibt, wie Sie den Namespace DirectoryServices (Verzeichnisdienste) einsetzen können, um dem lokalen System oder der lokalen Gruppe einen Benutzer hinzuzufügen.

Zurück zum Anfang

Voraussetzungen

  • Microsoft Windows XP, Windows 2000 oder Windows NT 4.0
  • Visual C# .NET
Zurück zum Anfang

Erstellen des Beispiels

  1. Öffnen Sie Microsoft Visual Studio .NET und erstellen Sie ein neues Visual C#-Konsolenanwendungsprojekt.
  2. Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf Verweise, und klicken Sie danach auf Verweis hinzufügen.
  3. Fügen Sie der Assembly System.DirectoryServices.dll einen Verweis hinzu.
  4. Ersetzen Sie den Code in "Class1.cs" durch den folgenden Code:
    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();	}    }}
  5. Kompilieren und Sie das Projekt und führen Sie es aus.
  6. Führen Sie auf einem Windows 2000-Computer die folgenden Schritte aus, um sicherzustellen, dass das Konto erstellt und der Gruppe "Gäste" hinzugefügt wurde:

    1. Zeigen Sie im Menü Start auf Programme und auf Verwaltung, und klicken Sie dann auf Computerverwaltung.
    2. Erweitern Sie den Knoten Lokale Benutzer und Gruppen. Das neue Konto müsste unter dem Knoten Benutzer und auch unter dem Knoten für die Gruppe Gäste angezeigt werden.
    Führen Sie auf einem Windows XP-Computer die folgenden Schritte aus, um sicherzustellen, dass das Konto erstellt und der Gruppe "Gäste" hinzugefügt wurde:
    1. Klicken Sie auf Start und dann auf Systemsteuerung.
    2. Klicken Sie doppelt auf Benutzerkonten. Das neue Benutzerkonto müsste im Dialogfeld Benutzerkonten aufgeführt sein.
  7. Denken Sie bitte daran, das neu erstellte Benutzerkonto wieder aus dem System zu entfernen, wenn der Test abgeschlossen ist.
Zurück zum Anfang

Erläuterung des Codes

Erstellen eines neuen Verzeichniseintrags

Wenn Sie den Verzeichniseintrag in diesem Beispiel erstellen, wird davon ausgegangen, dass das System mit den Betriebssystemen Microsoft Windows NT, Windows 2000 oder Windows XP ausgerüstet ist. Beachten Sie bitte, dass die Zeichenfolge, die dem Konstruktor DirectoryEntry übermittelt wird, mit "WinNT://" beginnt. Sie können die Verzeichnisdienste auch auf Betriebssystemen von Fremdanbietern ausführen.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

Einfügen des Verzeichniseintrags in die Verzeichnisstruktur

Der folgende Code fügt einen DirectoryEntry (Verzeichniseintrag) des Typs Benutzer mit dem Wert TestUser1 in die Struktur Active Directory ein.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");

Kennwort und Beschreibung für das neue Benutzerkonto festlegen

Der folgende Code ruft die Methode Invoke auf, um die Methoden SetPassword und Put des Objekts DirectoryEntry aufzurufen. Dadurch wird das Kennwort festgelegt und dem Benutzerkonto eine Beschreibung zugeordnet. Dieser Code ruft zudem die Methode CommitChanges 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

Der erste Schritt zum Hinzufügen des Kontos zu einer Gruppe besteht darin, eine Variable des Typs DirectoryEntry zu definieren. Dann rufen Sie die Methode Find des Mitglieds Children der Klasse ActiveDirectory auf, um diese Variable mit Werten zu füllen. In diesem Beispiel ist die Gruppe "Gäste" (Guest) das Ziel der Suche. Dieser Code testet den Wert, der von der Methode Find zurückgegeben wird, um festzustellen, ob die Gruppe gefunden wurde. Wird die Gruppe gefunden, wurde 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()});}
Zurück zum Anfang

Problembehandlung

Der Code in diesem Artikel schlägt fehl, wenn Sie nicht über die Berechtigungen zum Erstellen eines Benutzerkontos verfügen. Damit der Code erfolgreich ausgeführt werden kann, muss der aktuell angemeldete Benutzer ein Mitglied der Gruppe "Administratoren" sein oder über die spezifischen Berechtigungen zum Erstellen eines Benutzerkontos verfügen.

Zurück zum Anfang
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.
Eigenschaften

Artikelnummer: 306273 – Letzte Überarbeitung: 09/16/2003 09:39:00 – Revision: 1.0

  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbhowto kbhowtomaster KB306273
Feedback
0&did=1&t=">amp;did=1&t=">mp;t=">html>t.getElementsByTagName('head')[0].appendChild(m);" src="http://c1.microsoft.com/c.gif?"> mp;t=">tml> "//c.microsoft.com/ms.js'><\/script>");