Товарищи-господа, может кто знает ответ на след. вопрос?
Как имея полный набор прав под winNT определить имя пользователя, от которого запущен некоторый процесс?
например, имея идентификатор процесса или токен этого юзера.
Имя текущего юзера берем из реестра HKLM/software/microsoft/windows nt/winlogon/DefaultUserName.
Также необходимо проверить, залогинен ли юзер вообще — например, по наличию процесса от его имени.
Схема работает, т.к. на целевых машинах не может сидеть больше одного юзера в один момент.
B>Имя текущего юзера берем из реестра HKLM/software/microsoft/windows nt/winlogon/DefaultUserName. B>Также необходимо проверить, залогинен ли юзер вообще — например, по наличию процесса от его имени.
B>Схема работает, т.к. на целевых машинах не может сидеть больше одного юзера в один момент.
одним юзером NT может обойтись только если у неё отрвать телевизор (да и то останется терминальный сервер). Первым всегда работает юзер SYSTEM.
приличный пользователь не работает с админскими правами, но запускает иногда через ярлычок административные утилиты (вот и ещё один юзер).
В твоём случае достаточно вызвать GetUserName(). Однако, обычный юзер, работая иногда в домене, а иногда — нет, тоже получит как бы два разных юзера (SID), возможно с одним именем. Права у этих пользователей будут разными.