![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
как запустить программу с провами администратора [D6, Win2k]
Spartak © (2003-04-21 11:02:00)если ты сам находишься под провами обычного пользователя .
Есть прогамма управления комп клубом и чтобы админы не меняли базы данных запрещёно посчти всё и так же запуск программ . Запустить программу можно только когда войдёшь в систему с паролем админа.
так вот как сделать прогу которая бы запускала программу управления клубом под правами админа ( чтобы клубная программа могла писать файлы в каталог и делать записи в реестре )
Burmistroff (2003-04-26 21:28:00) [1]procedure WinExecAsUser(FileName: string; username: string; password:
string; Visibility:
integer);
var { V1 by Pat Ritchey, V2 by P.Below }
zAppName : array[0..512] of char;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
h : thandle;
begin { WinExecAndWait32V2 }
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not LogonUser(pchar(username), ".", pchar(Password),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, h) then
MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
CreateProcessAsUser(h, nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_DEFAULT_ERROR_MODE,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo); { pointer to PROCESS_INF }
if GetLastError <> 0 then MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
end;
Proton (2003-04-23 19:34:00) [2]Этот ответ не по части програмироывания, есть такая комманда runas которая должна решить твои проблеммы.
еще CreateProcessAsUser(), она вообще идеально подходит к твоей задаче, но там куча параметров, с которыми бе пузыря никак :).
sniknik (2003-04-23 18:29:00) [3]в принципе сервис не единственное что с чужими правами запустить можно. DCOM (если это проше будет) тоже запускается от настроенного пользователя с его паролем и правами, а управляющую надстройку можно и меньше 36к (при желании) сделать.
handra (2003-04-23 17:05:00) [4]с прОвами не получится... ;)
joisy (2003-04-23 16:49:00) [5]Poslushyte no v Win2k est je funktsiya dlya zapuska programm pod drugim uzerom (something like RunAs) - tuda v kommandnoy stroke pishesh uzera, parol i.t.d. Ili ya oshibayus?? Ili eto v Linuxe?
alexteam (2003-04-22 09:46:00) [6]к стати вдогонку НЕ ХАМИ
alexteam (2003-04-22 09:45:00) [7]вообще-то я сам адмиин и пишу свою прогу адмнистрации (клиентский готов пишу сервак) в общем для такой цели сервис идеальная вещь без прав админа не вырубиш и работает под админом %), в общем ты такой умный и столько знаеш, думаю сам разберешся
интересно почему у тя слово сервис связано с вирями ? :) это же две разные вещи
Cobalt (2003-04-22 09:07:00) [8]Внимание - вопрос!
Зарегестрировался пользователь - с ограниченными правами. Он не имеет права админа.
Надо запустить прогу с правами админа - вопрос - кому и когда это надо?!
Этому ограниченному пользователю?
Или админу?
Если прога должна типа работать при любом пользователе (но с правми админа - этакая "следилка за пользователем"), то идеально подходит сервис (можно ему, если надо, разрешить взаимодействие с десктопом)
Иначе непонятно че-то...
DeadMeat (2003-04-21 17:07:00) [9]Заинсталь свой сервис, а когда надо чёто запустить, передай ему строку с файлом и всё... Я так сделал у нас в универе...
andrey_pst (2003-04-21 13:44:00) [10]Мда, случай тяжелый... :)
Spartak (2003-04-21 12:55:00) [11]Просто видел прогу которая делает то же самое и весит всего 36 кб
ну ладно раз никто не знает то ...
Плохиш (2003-04-21 12:37:00) [12]Идёшь в магазин и покупаешь толстую книгу по Delphi и по WindowsAPI (не из серии для чайников) и настраиваешь driver head.sys, кстати на будущее тоже пригодится.
PS. Про вирусы - это ты сказал
Spartak (2003-04-21 12:31:00) [13]>Service
я могу написать сервис ! если ты на счёт вируса то я и сам знаю
могу и сам кого хочешь научить !
но мне не это нужно ! мне нужно как сделать в своей проге запуск
другой программы с правами админа .
Плохиш (2003-04-21 12:26:00) [14]Service
Spartak (2003-04-21 12:18:00) [15]Я сам запретил это всё ! Я ! работаю на сеть клубов ! ( всего 7 клубов ) ясно !?
Так что пожайлуста не надо мне таких претензий !
>Непонятно - если ты обычный пользователь, то не лезь, куда не
> след. А если ты админ, то залогинься - и вперед
мне не нужно логниться ! мне нужно чтобы программа управления работала ! и писала свои отчёты и базы данных !
Только под такой защитой она это сделать не может ! так как она запущена под пользователем ( админом , кассиром )
REA (2003-04-21 11:28:00) [16]>запрещёно посчти всё
вот для таких и запрещено
Cobalt (2003-04-21 11:06:00) [17]чтобы админы не меняли базы данных
Непонятно - если ты обычный пользователь, то не лезь, куда не след. А если ты админ, то залогинься - и вперед.