2014-02-15 2 views
-1

Возможно ли, чтобы currenlty зарегистрировался на имени пользователя, имени домена и SID пользователя, у пользователя, не являющегося администратором? Если да, может ли кто-нибудь предоставить мне примерный код или шаги, с которых мне следует начать?Как получить в настоящее время имя пользователя, имя домена и пользователя sid от пользователя, не являющегося администратором?

Заранее благодарен!

+0

Вы имеете в виду имя текущего пользователя, выполняющего определенную программу, к которой вы хотите добавить «получить имя пользователя и т. Д.», Или вы имеете в виду «Список всех пользователей, которые в настоящее время вошли на этот компьютер»? Я уверен, что последнее невозможно с помощью общедоступных API по соображениям безопасности. –

+0

@MatsPetersson: Я имею в виду, что у меня есть .exe, скажем myapp.exe. Вводится пользователь dministrator, допустим, администратор. Но myapp.exe будет запущен с запуском, как и не администратором. В этой осенью можно получить, кто входит в систему? – kampi

+0

Я уверен, что это возможно, но C++, возможно, не идеальный язык. Очевидно, что вкладка «Пользователи» в диспетчере задач может показать это, поэтому информация доступна. У sysinternals.com есть инструмент psloggedon, который, вероятно, делает то, что вы хотите. Что написано на C или C++, но я сомневаюсь, что они публикуют исходный код (они не для других инструментов, которые они делают) –

ответ

2

попробовать что-то вроде этого:

  1. Используйте ProcessIdToSessionId(), чтобы получить идентификатор сессии, что процесс работает в
  2. Используйте WTSQuerySessionInformation(), чтобы получить имя пользователя и домен, связанный с сеансом..
  3. Используйте LookupAccountName(), чтобы получить идентификатор пользователя домена.
+0

Большое спасибо! Это работает отлично, но instde 'LookupAccountSid' мне пришлось использовать' LookupAccountName'. – kampi

+0

Вы правы. Виноват. Я сделал это исправление. –

Смежные вопросы