Jak wylistować w C# nazwy kont użytkowników należących do określonej grupy?

24-maj-2012

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:

  1. Mobilo » Blog Archive » Polska nazwa grupy użytkowników na podstawie SID użytkownika w c# napisał,

    […] 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/). […]

Autor: Rafał Kraik