Как я могу получить список всех пользователей Windows на локальном компьютере с использованием .NET (С#)?
Получите пользователей Windows с помощью C#
Ответы (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
.
Это зависит от того, что вы действительно «после»... если вы находитесь в домене Windows (используя активный каталог), вы можете запросить Active Directory ЕСЛИ активный каталог используется для ограничения числа пользователей, которым разрешено использовать локальный компьютер.
Если ваши требования не столь строги, вы можете проверить папки в системных профилях пользователей, где каждая папка, кроме пользователя по умолчанию и всех пользователей, представляет профиль пользователя, который выполнил вход на локальный компьютер. Внимание сюда могут входить системные и/или сервисные аккаунты...
of a specific machine
, вы имеете в виду локальную/реальную машину или машину в сети? - person Bobby   schedule 17.05.2011