WIN32 - последний пользователь для входа

Есть ли надежный способ определения последнего имени пользователя для входа в систему? Я посмотрел на LsaEnumerateLogonSessions() и LsaGetLogonSessionData(), однако они требуют повышения в Vista и более поздних версиях (которых я очень хочу избежать). У WMI та же проблема (возможно, это просто вызов Lsa за кулисами).

Я также посмотрел на "ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ \Microsoft\Windows\CurrentVersion\Authentication\LogonUI\LastLoggedOnUser" в HKLM, но при тестировании это ненадежно и не обновляется.

Я действительно интересуюсь только консольным входом в систему, а не быстрым переключением пользователей или входом в систему TS.

Я читал разные статьи, но пока не нашел хорошего решения.

1 ответ

Решение

Возможно, вы сможете использовать события Audit Logon - для этого требуется, чтобы ваша служба имела право доступа пользователя для просмотра журнала безопасности, но не являлась полным администратором.

Eventid 528 указывает, кто вошел в систему, вам нужно будет найти самый последний экземпляр этого.

Другие вопросы по тегам