Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule opisano sposób używania DirectoryServices
przestrzeni nazw do dodawania użytkownika do systemu lokalnego i grupy w programie 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 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
System.DirectoryServices.dll
zestawu.Zastąp kod w pliku Class1.cs następującym kodem.
Uwaga 16.
W programie Visual C# 2005 lub Visual C# 2008 plik Class1.cs jest zastępowany przez plik 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ścia:
- W menu Start wskaż polecenie Programy, wskaż pozycję Narzędzia administracyjne, a następnie kliknij pozycję Zarządzanie komputerem.
- Kliknij, aby rozwinąć węzeł Użytkownicy i grupy lokalne. Nowe konto powinno pojawić się w węźle Użytkownicy, a także w węźle grupy gościa.
Wykonaj następujące kroki na komputerze z systemem Windows XP, aby sprawdzić, czy konto zostało utworzone i dodane do grupy gościa:
- W menu Start kliknij pozycję Panel sterowania.
- Kliknij dwukrotnie pozycję Konta użytkowników. Nowe konto użytkownika powinno pojawić się w oknie dialogowym Konta użytkowników.
Ważne
Po zakończeniu testowania usuń nowo utworzone konto użytkownika z systemu.
Tworzenie nowego wpisu katalogu
Podczas tworzenia wpisu katalogu w tym przykładzie zakłada się, że system korzysta z systemu Windows NT, Windows 2000 lub Windows XP.
Uwaga 16.
Ciąg przekazywany do konstruktora DirectoryEntry
zaczyna się od "WinNT://"
. 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 z 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, aby wywołać SetPassword
metody DirectoryEntry
i Put
obiektu . Spowoduje to ustawienie hasła i przypisanie 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", "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 metodę
Find
Children
składowejActiveDirectory
klasy, aby wypełnić zmienną. W takim przypadku grupa gościa jest elementem docelowym wyszukiwania. Ten kod sprawdza wartość zwracaną przezFind
metodę w celu określenia, 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 zakończył się 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.