Jak wylistować w C# nazwy kont lokalnych użytkowników?

24-maj-2012

Funkcje potrzebne do pracy z użytkownikami komputera lokalnego lub Active Directory znajdziesz w System.DirectoryServices. Zacznij więc od dodania tej przestrzeni nazw:

using System.DirectoryServices;

Załóżmy, że nazwy użytkowników mają być umieszczone jako pozycje w liście o nazwie listBox1. Odpowiedni kod może wyglądać tak:

Po pierwsze tworzysz obiect DirectoryEntry i określasz gdzie zostanie przeprowadzone wyszukiwanie. Dla komputera lokalnego jest to albo sama nazwa komputera albo nazwa komputera i po przecinku słowo computer. Dla domeny byłaby to nazwa domeny \ nazwa komputera:

DirectoryEntry directory = new DirectoryEntry();
directory.Path = "WinNT://" + Environment.MachineName + ",computer";

Następnie dla każdego ze znalezionych dzieci, sprawdzamy czy to dziecko jest Userem, a jeśli tak, to dodajemy do listy. Inne obiekty jakie tu można znaleźć to np grupy lub jednostki organizacyjne:

foreach (DirectoryEntry d in directory.Children) {         if (d.SchemaClassName == „User”)        {                listBox1.Items.Add(d.Name);         } }

Źródło: http://guyellisrocks.com/coding/c-script-to-list-local-users-and-disabled-status-on-windows-servers/

Autor: Rafał Kraik