Dodawanie użytkownika do systemu lokalnego przy użyciu usług katalogowych i języka Visual C Sharp
W tym artykule opisano sposób używania przestrzeni nazw do dodawania użytkownika do systemu lokalnego i grupy w języku DirectoryServices
Visual C#.
Oryginalna wersja produktu: Visual C#
Oryginalny numer KB: 306273
Podsumowanie
W tym artykule krok po kroku pokazano, jak za pomocą DirectoryServices
przestrzeni nazw dodać użytkownika do systemu lokalnego i grupy.
Tworzenie przykładu
Uruchom program Visual Studio .NET 2003, Visual Studio 2005 lub Visual Studio 2008, a następnie utwórz nowy projekt aplikacji konsolowej języka Visual C#.
W Eksplorator rozwiązań kliknij prawym przyciskiem myszy pozycję Odwołania, a następnie kliknij pozycję Dodaj odwołanie.
Dodaj odwołanie do zestawu
System.DirectoryServices.dll
.Zastąp kod w pliku Class1.cs następującym kodem.
Uwaga
W programie Visual C# 2005 lub Visual C# 2008 plik Class1.cs jest zastępowany plikiem Program.cs .
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(); } } }
Skompiluj, a następnie uruchom projekt.
Wykonaj następujące kroki na komputerze z systemem Windows 2000, aby sprawdzić, czy konto zostało utworzone i dodane do grupy gości:
- W menu Start wskaż pozycję Programy, wskaż pozycję Narzędzia administracyjne, a następnie kliknij pozycję Zarządzanie komputerem.
- Kliknij, aby rozwinąć węzeł Użytkownicy lokalni i grupy . Nowe konto powinno zostać wyświetlone w węźle Użytkownicy, a także w węźle grupy Gości.
Wykonaj następujące kroki na komputerze z systemem Windows XP, aby sprawdzić, czy konto zostało utworzone i dodane do grupy gości:
- W menu Start kliknij pozycję Panel sterowania.
- Kliknij dwukrotnie pozycję Konta użytkowników. Nowe konto użytkownika powinno zostać wyświetlone w oknie dialogowym Konta użytkowników .
Ważna
Usuń nowo utworzone konto użytkownika z systemu po zakończeniu testowania.
Tworzenie nowego wpisu katalogu
Podczas tworzenia wpisu katalogu w tym przykładzie zakłada się, że system działa w systemie Windows NT, Windows 2000 lub Windows XP.
Uwaga
Ciąg przekazywany do konstruktora DirectoryEntry
"WinNT://"
zaczyna się od . Usługi katalogowe można również uruchamiać w innych systemach operacyjnych innych firm.
DirectoryEntry AD = new DirectoryEntry("WinNT://" + SystemInformation.ComputerName + ",computer");
Dodawanie wpisu katalogu do drzewa katalogów
Poniższy kod dodaje DirectoryEntry
użytkownika typu o wartości TestUser1
do drzewa usługi Active Directory.
DirectoryEntry NewUser = AD.Children.Add("TestUser1", "user");
Ustawianie hasła i opisu dla nowego konta użytkownika
Poniższy kod wywołuje metodę Invoke w celu wywołania SetPassword
metod i Put
obiektu DirectoryEntry
. Spowoduje to ustawienie hasła i przypisanie opisu do konta użytkownika. Ten kod wywołuje CommitChanges
również metodę w celu zapisania zmian.
NewUser.Invoke("SetPassword", new object[] {"#12345Abc"});
NewUser.Invoke("Put", new object[] {"Description", "Test User from .NET"});
NewUser.CommitChanges();
Dodawanie konta do grupy
Aby dodać konto do grupy, wykonaj następujące kroki:
- Zdefiniuj zmienną typu
DirectoryEntry
. - Wywołaj
Find
metodę elementuChildren
członkowskiego klasy,ActiveDirectory
aby wypełnić zmienną. W takim przypadku grupa Gości jest celem wyszukiwania. Ten kod testuje wartość zwracaną przezFind
metodę w celu ustalenia, czy grupa została znaleziona. Jeśli grupa zostanie znaleziona, nowe konto użytkownika zostanie dodane do grupy.
DirectoryEntry grp;
grp = AD.Children.Find("Guests", "group");
if (grp != null) {grp.Invoke("Add", new object[] {NewUser.Path.ToString()});}
Rozwiązywanie problemów
Kod w tym artykule kończy się niepowodzeniem, jeśli spróbujesz uruchomić kod bez wystarczających uprawnień do utworzenia konta użytkownika. Aby kod został ukończony pomyślnie, aktualnie zalogowany użytkownik musi być członkiem grupy Administratorzy lub mieć określone uprawnienia, które umożliwiają użytkownikowi tworzenie kont użytkowników.
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla