Jesteś obecnie w trybie offline. Czekamy na ponowne połączenie z Internetem.

Twoja przeglądarka nie jest obsługiwana

Aby używać tej witryny, musisz zaktualizować przeglądarkę.

Zaktualizuj przeglądarkę do najnowszej wersji programu Internet Explorer

JAK: Dodawanie użytkownika do systemu lokalnego za pomocą usług katalogowych i programu Visual C# .NET

Ten artykuł został opublikowany wcześniej pod numerem PL306273
Wersja tego artykułu dla programu Microsoft Visual Basic .NET: 306271.

W TYM ZADANIU

Streszczenie
W tym artykule opisano, jak użyć obszaru nazwDirectoryServicesw celu dodania użytkownika do systemu lokalnego i do grupy.

powrót do początku

Wymagania

  • System Microsoft Windows XP, Windows 2000 lub Windows NT 4.0
  • Program Visual C# .NET
powrót do początku

Tworzenie przykładu

  1. Otwórz program Microsoft Visual Studio .NET i utwórz nowy projekt aplikacji konsoli języka Visual C#.
  2. W oknie Solution Explorer kliknij prawym przyciskiem myszy folderReferences, a następnie kliknij polecenieAdd Reference.
  3. Dodaj odwołanie do zespołu (assembly)System.DirectoryServices.dll.
  4. Zastąp kod w pliku Class1.cs następującym kodem:
    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("UżytkownikTestowy1", "user");	 NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});	 NewUser.Invoke("Put", new object[] {"Description", "Użytkownik testowy z .NET"});	 NewUser.CommitChanges();	 DirectoryEntry grp;	 grp = AD.Children.Find("Goście", "group");	 if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}	 Console.WriteLine("Utworzenie konta powiodło się");	 Console.ReadLine();	}    catch (Exception ex)	{	 Console.WriteLine(ex.Message);	 Console.ReadLine();	}    }}
  5. Skompiluj i uruchom projekt.
  6. Wykonaj następujące kroki na komputerze z systemem Windows 2000, aby sprawdzić, czy konto zostało utworzone i dodane do grupy Goście:

    1. Kliknij przycisk Start, wskaż polecenie Programy, wskaż polecenie Narzędzia administracyjne, a następnie kliknij polecenie Zarządzanie komputerem.
    2. Rozwiń węzełUżytkownicy i grupy lokalne. Nowe konto powinno pojawiać się w folderzeUżytkownicyoraz w grupieGoście.
    Wykonaj następujące kroki na komputerze z systemem Windows XP, aby sprawdzić, czy konto zostało utworzone i dodane do grupy Goście:
    1. W menuStartkliknij poleceniePanel sterowania.
    2. Kliknij dwukrotnie ikonęKonta użytkowników. Nowe konto użytkownika powinno pojawiać się w oknie dialogowymKonta użytkowników.
  7. Po zakończeniu testowania usuń nowo utworzone konto z systemu.
powrót do początku

Objaśnienie kodu

Utworzenie nowej pozycji katalogu

Przy tworzeniu nowej pozycji katalogu w tym przykładzie zakłada się, że na komputerze jest uruchomiony system Microsoft Windows NT, Windows 2000 lub Windows XP. Zauważ, że ciąg, który jest przekazywany do konstruktoraDirectoryEntry, zaczyna się od „WinNT://”. Usługi katalogowe możesz również uruchomić w systemach operacyjnych innych firm.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");

Dodanie pozycji katalogu do drzewa katalogów

Następujący kod dodaje pozycjęDirectoryEntrytypuuserz wartościąUżytkownikTestowy1do drzewa usługiActive Directory.
DirectoryEntry NewUser = AD.Children.Add("UżytkownikTestowy1", "user");

Ustawienie hasła i opisu dla nowego konta użytkownika

Następujący kod wywołuje metodęInvokew celu wywołania metodSetPasswordiPutobiektuDirectoryEntry. Powoduje to przypisanie hasła i opisu do konta użytkownika. Ten kod wywołuje również metodęCommitChangesw celu zapisania zmian.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});NewUser.Invoke("Put", new object[] {"Description", "Użytkownik testowy z .NET"});NewUser.CommitChanges();

Dodanie konta do grupy

Pierwszym krokiem wykonywanym w celu dodania konta do grupy jest zdefiniowanie zmiennej typuDirectoryEntry. Następnie zostaje wywołana metodaFindelementuChildrenklasyActiveDirectoryw celu wypełnienia tej zmiennej. W tym wypadku celem wyszukiwania jest grupa Goście. Ten kod testuje wartość zwróconą przez metodęFindw celu sprawdzenia, czy grupa została znaleziona. Jeśli grupa została znaleziona, nowe konto użytkownika zostaje dodane do tej grupy.
DirectoryEntry grp;grp = AD.Children.Find("Goście", "group");if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
powrót do początku

Rozwiązywanie problemów

Kod opisany w tym artykule nie działa, jeśli spróbujesz uruchomić go bez wystarczających uprawnień do tworzenia konta użytkownika. Aby można było pomyślnie wykonać ten kod, aktualnie zalogowany użytkownik musi być członkiem grupy Administratorzy lub mieć określone uprawnienia, które pozwalają na tworzenie kont użytkowników.

powrót do początku
Właściwości

Identyfikator artykułu: 306273 — ostatni przegląd: 04/09/2003 08:36:00 — zmiana: 1.0

  • Microsoft Visual C# .NET 2002 Standard Edition
  • kbhowto kbhowtomaster KB306273
Opinia
.microsoft.com/c.gif?DI=4050&did=1&t=">xt/javascript"> Asimov.clickstreamTracker.init();