Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Вниз

Запуск приложения с правами пользователя, который вошёл в систему   Найти похожие ветки 

 
Terrible   (2002-09-24 16:09) [0]

Есть сервис (который исполняется с правами LocalSystem). И вот ему по определённому событию надо запустить приложение (на данный момент пользуюсь WinExec). Но приложение тоже запускается с правами LocalSystem. А как бы сделать, что бы оно запускалось с правами пользователя, который сделал LogOn в систему.
Причём что самое интересное, как это сделать на Delphi. Буду очень благодарен за примерчик.


 
Song   (2002-09-24 16:24) [1]

CreateProcessAsUser()


 
ZZ   (2002-09-24 16:24) [2]

Получай PID юзерского процесса и

function GetUserContext(dwPid : Cardinal):Boolean;
var
hProc : THandle;
hToken : THandle;
User : array [0..100] of Char;
cbUser : Cardinal;
begin
Result:=false;

hProc:=OpenProcess(PROCESS_ALL_ACCESS,false,dwPid);
if hProc = 0 then Exit;

if not OpenProcessToken(hProc,TOKEN_DUPLICATE or TOKEN_QUERY ,hToken)
then Exit;

if not ImpersonateLoggedOnUser(hToken)
then Exit;

// С этого момента код будет выполняться в
// Контексте пользователя, под которым запущен
// процесс c PID = dwPID
cbUser:=100;
GetUserName(User,cbUser);
ShowMessage(User);

RevertToSelf;

// Теперь снова работаем под системой
cbUser:=100;
GetUserName(User,cbUser);
ShowMessage(User);

Result:=true;
end;



Страницы: 1 вся ветка

Форум: "Система";
Текущий архив: 2002.11.25;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.037 c
3-82625
Свой
2002-11-04 21:38
2002.11.25
File in Paradox


3-82586
Maloi
2002-11-07 22:25
2002.11.25
Помогите! Как отловить ID только что добавленной записи?


1-82815
Lamak
2002-11-09 03:09
2002.11.25
RichEdit


14-82942
esu
2002-11-06 03:48
2002.11.25
Дети в романах С. Лукьяненко


1-82826
Vovaka
2002-11-13 16:48
2002.11.25
Как определить, что с приложением никто не работает





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский