![]() |
eXeL@B —› Оффтоп —› как юзеру выполнить программу с правами админа? |
Посл.ответ | Сообщение |
|
Создано: 04 октября 2007 01:54 · Личное сообщение · #1 Уже много месяцев не могу найти нужное решение. Дело вот в чём. Есть в Windows XP пользователь с ограниченными правами. Необходимо выполнить от его имени программу с правами админа. Если работает "Вторичный вход в систему", то можно воспользоваться пресловутой программой runas и запустить что-то от администратора, но изменения в системе не коснутся личного профиля юзера! Если таким макаром запущенная прога создаст ярлык на рабочем столе, то он окажется у админа (если разве что не через "all users"). Если редактирует ветку реестра HKCU, то опять же редактируется админский ntuser.dat Даже ключ /env тут не поможет ![]() В линуксе есть программа su. Она просто временно переносит юзера в группу суперюзеров и это позволяет работать от имени пользователя, но с неограниченными правами. В винде задолбало делать юзера админом, отлогиниваться, логиниться, потом убирать из группы админов. В общем, если у кого есть какие идеи - очень буду рад услышать! ![]() |
|
Создано: 07 октября 2007 17:28 · Личное сообщение · #2 если из своей проги используй функцию function CreateProcessWithLogonW(user:pwidechar; domain:pwidechar; passw:pwidechar; flags: DWORD; lpApplicationName: PwideChar; lpCommandLine: PwideChar; dwCreationFlags: DWORD; lpEnvironment: Pointer; lpCurrentDirectory: PWideChar; const lpStartupInfo: TStartupInfo; var lpProcessInformation: TProcessInformation): BOOL; stdcall;external 'advapi32.dll' name 'CreateProcessWithLogonW'; если знаешь пасс админа можно запустить рогу с его правами и делай дальше че хошь вызывается так var St: TStartupinfo; Pr: TProcessInformation; begin ZeroMemory(@St, SizeOf(St)); St.cb := SizeOf(St); St.lpDesktop := PChar('winsta0\default'); CreateProcess(nil, pchar(edit1.Text), nil, nil, false, 0, nil, nil, St, Pr)ж end; ----- Лень - это подсознательная мудрость ![]() |
|
Создано: 08 октября 2007 01:38 · Личное сообщение · #3 |
|
Создано: 08 октября 2007 07:34 · Личное сообщение · #4 |
|
Создано: 08 октября 2007 10:30 · Личное сообщение · #5 |
|
Создано: 08 октября 2007 12:52 · Личное сообщение · #6 |
|
Создано: 08 октября 2007 13:16 · Личное сообщение · #7 |
|
Создано: 09 октября 2007 01:22 · Поправил: bash · Личное сообщение · #8 LazzY пишет: ни в чем вот и я о том же ![]() bloom пишет: думаю стоит попробовать с правами SYSTEM Стоит ли... Интересно тогда Ваше мнение: если программа будет работать с такими объектами как CSIDL_PERSONAL или CSIDL_DESKTOP, то какие значения будут возвращаться? И если она будет редактировать ветку HKCU, то куда пойдёт запись? ![]() |
|
Создано: 09 октября 2007 09:01 · Личное сообщение · #9 |
|
Создано: 09 октября 2007 15:36 · Поправил: r99 · Личное сообщение · #10 |
![]() |
eXeL@B —› Оффтоп —› как юзеру выполнить программу с правами админа? |