Получить пользователей Windows с C # - PullRequest
8 голосов
/ 17 мая 2011

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

Ответы [ 2 ]

8 голосов
/ 17 мая 2011

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

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.

3 голосов
/ 17 мая 2011

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

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

...