Сейчас на форуме: Vicshann, cyberlabs, rus935 (+4 невидимых)

 eXeL@B —› Оффтоп —› как юзеру выполнить программу с правами админа?
Посл.ответ Сообщение

Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 04 октября 2007 01:54
· Личное сообщение · #1

Уже много месяцев не могу найти нужное решение. Дело вот в чём.
Есть в Windows XP пользователь с ограниченными правами. Необходимо выполнить от его имени программу с правами админа.
Если работает "Вторичный вход в систему", то можно воспользоваться пресловутой программой
runas и запустить что-то от администратора, но изменения в системе не коснутся личного профиля юзера!
Если таким макаром запущенная прога создаст ярлык на рабочем столе, то он окажется у админа (если разве что не через "all users"). Если редактирует ветку реестра HKCU, то опять же редактируется админский ntuser.dat
Даже ключ /env тут не поможет
В линуксе есть программа su. Она просто временно переносит юзера в группу суперюзеров и это позволяет работать от имени пользователя, но с неограниченными правами.
В винде задолбало делать юзера админом, отлогиниваться, логиниться, потом убирать из группы админов.

В общем, если у кого есть какие идеи - очень буду рад услышать!




Ранг: 247.7 (наставник), 3thx
Активность: 0.160
Статус: Участник
Халявщик

Создано: 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;

-----
Лень - это подсознательная мудрость




Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 08 октября 2007 01:38
· Личное сообщение · #3

depler
код проверить пока нет возможности, но если навскидку, то в чём отличие от runas?



Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 08 октября 2007 07:34
· Личное сообщение · #4

bash ни в чем




Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 08 октября 2007 10:30
· Личное сообщение · #5

мне кажется можно попробовать запускать программы с правами не какого-то акка, а SYSTEM (умеет pstools)

-----
in search of sunrise




Ранг: 110.7 (ветеран)
Активность: 0.070
Статус: Участник
~ tPORt ~

Создано: 08 октября 2007 12:52
· Личное сообщение · #6

bloom в висте runas так и делает /:




Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 08 октября 2007 13:16
· Личное сообщение · #7

LazzY пишет:
в висте runas так и делает


как ?
вообще автор спрашивал про ХР
думаю стоит попробовать с правами SYSTEM

-----
in search of sunrise




Ранг: 68.8 (постоянный)
Активность: 0.120
Статус: Участник

Создано: 09 октября 2007 01:22 · Поправил: bash
· Личное сообщение · #8

LazzY пишет:
ни в чем

вот и я о том же

bloom пишет:
думаю стоит попробовать с правами SYSTEM


Стоит ли... Интересно тогда Ваше мнение: если программа будет работать с такими объектами как CSIDL_PERSONAL или CSIDL_DESKTOP, то какие значения будут возвращаться?
И если она будет редактировать ветку HKCU, то куда пойдёт запись?




Ранг: 327.3 (мудрец)
Активность: 0.250
Статус: Участник

Создано: 09 октября 2007 09:01
· Личное сообщение · #9

bash пишет:
если программа будет работать с такими объектами как CSIDL_PERSONAL или CSIDL_DESKTOP, то какие значения будут возвращаться?


вот и мне интересно какие.

-----
in search of sunrise





Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 09 октября 2007 15:36 · Поправил: r99
· Личное сообщение · #10

не проще ли завести еще одного админа и запускать прогу через расширенный RUNAS (типа encrypted
runas) от имени этого админа

а вообще-то вопрос некорректно поставлен -если он вообще поставлен


 eXeL@B —› Оффтоп —› как юзеру выполнить программу с правами админа?

У вас должно быть 20 пунктов ранга, чтобы оставлять сообщения в этом подфоруме, но у вас только 0

   Для печати Для печати