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

Tłumaczenia artykułów Tłumaczenia artykułów
Numer ID artykułu: 306273 - Zobacz jakich produktów dotyczą zawarte w tym artykule porady.
Ten artykuł został opublikowany wcześniej pod numerem PL306273
Rozwiń wszystko | Zwiń wszystko

Na tej stronie

Streszczenie

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

Wymagania

  • System Microsoft Windows XP, Windows 2000 lub Windows NT 4.0
  • Program Visual C# .NET

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 folder References, a następnie kliknij polecenie Add 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 folderze Użytkownicy oraz w grupie Goś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 menu Start kliknij polecenie Panel sterowania.
    2. Kliknij dwukrotnie ikonę Konta użytkowników. Nowe konto użytkownika powinno pojawiać się w oknie dialogowym Konta użytkowników.
  7. Po zakończeniu testowania usuń nowo utworzone konto z systemu.

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 konstruktora DirectoryEntry, 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ę DirectoryEntry typu user z wartością UżytkownikTestowy1 do drzewa usługi Active 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ę Invoke w celu wywołania metod SetPassword i Put obiektu DirectoryEntry. Powoduje to przypisanie hasła i opisu do konta użytkownika. Ten kod wywołuje również metodę CommitChanges w 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 typu DirectoryEntry. Następnie zostaje wywołana metoda Find elementu Children klasy ActiveDirectory w celu wypełnienia tej zmiennej. W tym wypadku celem wyszukiwania jest grupa Goście. Ten kod testuje wartość zwróconą przez metodę Find w 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()});}

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.

Właściwości

Numer ID artykułu: 306273 - Ostatnia weryfikacja: 9 kwietnia 2003 - Weryfikacja: 1.0
Informacje zawarte w tym artykule dotyczą:
  • Microsoft Visual C# .NET 2002 Standard Edition
Słowa kluczowe: 
kbhowto kbhowtomaster KB306273

Przekaż opinię

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com