Что нового

[Реестр] Имя пользователя при запуске скрипта от имени админа

glax24

Знающий
Сообщения
72
Репутация
14
Здравствуйте. Скрипт запускается под пользователем, но от имени администратора и макрос
Код:
@UserName
возвращает имя админа, вопрос как получить имя пользователя под которым зашли.
Код:
#NoTrayIcon
#RequireAdmin

MsgBox(0, "Имя пользователя",@UserName)
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
можно так
Код:
MsgBox(0, '', StringRegExpReplace(@UserProfileDir, '^.*\\', ''))
 

Yashied

Модератор
Команда форума
Глобальный модератор
Сообщения
5,379
Репутация
2,724
  • Определяете PID родительского процесса - _WinAPI_GetParentProcess().
  • Определяете имя пользователя - _WinAPI_GetProcessUser().
 
Автор
G

glax24

Знающий
Сообщения
72
Репутация
14
Александр,
Код:
@UserProfileDir
возвращается админа.
Yashied,
_WinAPI_GetProcessUser()-у запущенного процесса возвращается тоже админ.
 

joiner

Модератор
Локальный модератор
Сообщения
3,556
Репутация
628
в таком случае запускай скрипт используя
Код:
RunAs

AutoIT:
Код:
RunAs('администратор', @ComputerName, 'пароль', 4,'путь к программе')

флаг "4" - наследование переменных сред процесса вместо пользовательских. то есть будет возвращать имя пользователя под которым зашел в систему
Cmd:
Код:
runas /noprofile /env /savecred /user:Администратор "путь к программе"
параметр /env - Использовать текущие параметры среды.аналогично флагу "4"
но все равно придется использовать макрос
Код:
@UserProfileDir
 
Верх