Получите пользователей Windows с помощью C#

Как я могу получить список всех пользователей Windows на локальном компьютере с использованием .NET (С#)?


person Elmex    schedule 17.05.2011    source источник
comment
Вы говорите of a specific machine, вы имеете в виду локальную/реальную машину или машину в сети?   -  person Bobby    schedule 17.05.2011
comment
возможный дубликат Получить список имен пользователей локального компьютера в Windows   -  person Bobby    schedule 17.05.2011


Ответы (2)


Вот сообщение в блоге (с кодом), в котором объясняется, как это сделать:

http://csharptuning.blogspot.com/2007/09/how-to-get-list-of-windows-user-in-c.html

Автор перечисляет следующий код (цитируется с вышеуказанного сайта):

DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntry admGroup = localMachine.Children.Find("users","group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members)
{
    DirectoryEntry member = new DirectoryEntry(groupMember);
    lstUsers.Items.Add(member.Name);
}

Вам нужно добавить using System.DirectoryServices вверху вашего кода. Чтобы изменить компьютеры, вы должны изменить Environment.MachineName на любой компьютер, к которому вы хотите получить доступ (при условии, что у вас есть на это разрешение и брандмауэр не блокирует вас от этого). Я также изменил авторский код, чтобы он смотрел на группу users вместо группы administrators.

person IAmTimCorey    schedule 17.05.2011
comment
Есть идеи, насколько это надежно? т. е. есть альтернативы, использующие WMI, утверждающие, что его можно использовать без проблем, но частота отказов у ​​него > 0,5% - person eglasius; 10.08.2012
comment
По моему опыту, этот метод надежный. Насколько надежно, я не могу говорить об этом. Он должен быть абсолютно надежным. - person IAmTimCorey; 10.08.2012

Это зависит от того, что вы действительно «после»... если вы находитесь в домене Windows (используя активный каталог), вы можете запросить Active Directory ЕСЛИ активный каталог используется для ограничения числа пользователей, которым разрешено использовать локальный компьютер.

Если ваши требования не столь строги, вы можете проверить папки в системных профилях пользователей, где каждая папка, кроме пользователя по умолчанию и всех пользователей, представляет профиль пользователя, который выполнил вход на локальный компьютер. Внимание сюда могут входить системные и/или сервисные аккаунты...

person Cos Callis    schedule 17.05.2011