Podobnie jak opisałem tu http://www.mobilo24.eu/jak-wylistowac-w-c-nazwy-kont-lokalnych-uzytkownikow/, należy rozpocząć od dodania namespace:
using System.DirectoryServices;
Teraz wskaż, gdzie ma być analizowana grupa. Tutaj chodzi o grupę administratorów z komputera lokalnego:
DirectoryEntry directory = new DirectoryEntry(); directory.Path = "WinNT://" + Environment.MachineName + ",computer";
Teraz można rozpocząć wyszukiwanie. Szukać będziemy członków grupy Administratorzy:
Najpierw utwórz obiekt wskazujący na grupę administratorzy:
DirectoryEntry groupAdmin = directory.Children.Find("administratorzy","group");
Następnie wywołaj dla tej grupy „metodę” „members” listującą członków grupy
object groupMembers = groupAdmin.Invoke("members", null);
Teraz można już przejść przez poszczególne zwrócone elementy i przepisać ich nazwy (tutaj do listy listBox1):
foreach (object groupMember in (IEnumerable)groupMembers) { DirectoryEntry member = new DirectoryEntry(groupMember); listBox1.Items.Add(member.Name); }
Źródło: http://stackoverflow.com/questions/6033391/get-windows-users-with-c-sharp
Komentarze:
[…] Przykłądami takich fukcji mogą być chociażby konstruktor PipeAccessRole (do nadawania uprawnień do potoku komunikacyjnego) lub funkcja Children.Find wywoływana dla obiektu DirectoryEntry (http://www.mobilo24.eu/jak-wylistowac-w-c-nazwy-kont-uzytkownikow-nalezacych-do-okreslonej-grupy/). […]