Как получить список локальных пользователей Windows, которые вошли в систему? - PullRequest
3 голосов
/ 11 октября 2008

Я пытаюсь написать более быстрое приложение для переключения пользователей для Windows. Win + L и выбор пользователей очень громоздки. Если я запускаю диспетчер задач как администратор, он показывает активных пользователей, и я могу выбрать одного и «Подключиться» (если я введу их пароль).

Как получить список всех пользователей (или всех активных пользователей)?

Я использую C # (Visual Studio Express).

Ответы [ 3 ]

4 голосов
/ 09 апреля 2009

Если вы не хотите иметь дело с P / Invokes, вы можете использовать Cassia , которая обернет вас безобразным:

using Cassia;

foreach (ITerminalServicesSession session in new TerminalServicesManager().GetSessions())
{
    if (!string.IsNullOrEmpty(session.UserName))
    {
        Console.WriteLine("Session {0} (User {1})", session.SessionId, session.UserName);
    }
}
1 голос
/ 11 октября 2008

Вы также можете использовать NetWkstaUserEnum , чтобы увидеть всех пользователей, вошедших в систему; это не обязательно лучше, но это еще один вариант. У него есть одно преимущество: он будет работать на старых системах, которые не поддерживают терминальные сервисы, но это, вероятно, не проблема, если вы используете C #. :)

1 голос
/ 11 октября 2008

Я бы попробовал WTSEnumerateSessions , чтобы получить все доступные сеансы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...