Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизМаленький вопрос Найти похожие ветки
← →
KygECHuK © (2006-11-14 09:31) [0]Может ли сервис с правами system запустить процесс от другого пользователя ?
← →
Чапаев © (2006-11-14 09:40) [1]Легко. Смотри в сторону LogonUser()+CreateProcessAs(), например.
← →
KygECHuK © (2006-11-14 09:46) [2]Вы это сами видели?
← →
BiN © (2006-11-14 09:47) [3]
> Вы это сами видели?
А в чеим проблема?
← →
Чапаев © (2006-11-14 09:55) [4]Я это сам делал. Вас это беспокоит? Хотите поговорить об этом?
← →
Колдун © (2006-11-14 09:56) [5]
> Чапаев © (14.11.06 09:55) [4]
сорцы в студию!
← →
clickmaker © (2006-11-14 09:57) [6]
> [2] KygECHuK © (14.11.06 09:46)
> Вы это сами видели?
кто ж его увидит? Он же сервис
← →
Чапаев © (2006-11-14 09:59) [7]> [5] Колдун © (14.11.06 09:56)
Ага... Реально я от этого варианта отказался, не помню, почему. Вот работающий сейчас вариант.
ActiveConsole:=WTSGetActiveConsoleSessionId;
if not WTSQueryUserToken(ActiveConsole,UserToken)
then begin
if not CreateProcess(nil,
PChar(Format(""%s" yankeegohome "%s" "%s" %s",[ExtractFilePath(ParamStr(0))+"GetKey.prg",
UserName,
ExeName,
Key])),
nil,
nil,
False,
0,
nil,
PChar(ExtractFilePath(ParamStr(0))),
SI,
PI)
then begin
MessageBox(0,PChar(SysErrorMessage(GetLastError)),"",MB_OK or MB_ICONSTOP or MB_SERVICE_NOTIFICATION);
end
else begin
WaitForSingleObject(PI.hProcess,INFINITE);
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
end;
end
else begin
FillChar(SI,SizeOf(SI),0);
SI.cb:=SizeOf(SI);
if not CreateProcessAsUser(UserToken,
nil,
PChar(Format(""%s" yankeegohome "%s" "%s" %s",[ExtractFilePath(ParamStr(0))+"GetKey.prg",
UserName,
ExeName,
Key])),
nil,
nil,
False,
0,
nil,
PChar(ExtractFilePath(ParamStr(0))),
SI,
PI)
then begin
MessageBox(0,PChar(SysErrorMessage(GetLastError)),"",MB_OK or MB_ICONSTOP or MB_SERVICE_NOTIFICATION);
end
else begin
// Sleep(3000);
CloseHandle(UserToken);
WaitForSingleObject(PI.hProcess,INFINITE);
CloseHandle(PI.hThread);
CloseHandle(PI.hProcess);
end;
end;
← →
KygECHuK © (2006-11-14 10:07) [8]Ну вот развел на сорц провакационным вопросом :) Спасобо!
← →
Колдун © (2006-11-14 10:11) [9]Чапаев, а вообще какие условия должны выполняться, чтобы выполнить процесс программно с правами System?
← →
Чапаев © (2006-11-14 10:12) [10]> [9] Колдун © (14.11.06 10:11)
Самому иметь парва SYSTEM. :-D Если из SYSTEM выполнишь CreateProcess(), то дочерний процесс будет с правами SYSTEM.
← →
Колдун © (2006-11-14 10:14) [11]А как в винде получить эти права? Вот я админ за своей тачкой - так у меня права Администратора, а System - Это выше...
← →
Чапаев © (2006-11-14 10:18) [12]> Ну вот развел на сорц провакационным вопросом
Провокационным вопросом развёл лишь на провокационный вопрос. А на сорцы развёл просьбой сорцов. Читай ветку внимательно. :-D
> [11] Колдун © (14.11.06 10:14)
Ну речь первоначально о сервисе шла? Он, как правило, выполняется с такими правами.
Вообще сейчас меня другой вопрос занимает... Удастся ли:
1. Создать из службы процесс as user с наследованием хэндлов.
2. Передать ему токен системного пользователя.
3. Где нужно, олицетворять поток с системным пользователем.
← →
KygECHuK © (2006-11-14 10:19) [13]System не имеет прав на управление учетными записями
← →
Чапаев © (2006-11-14 10:20) [14]> [13] KygECHuK © (14.11.06 10:19)
Ась?
← →
KygECHuK © (2006-11-14 10:24) [15]Мысли в слух Ж)
← →
Колдун © (2006-11-14 10:26) [16]Дык че, касперский - сервис что ли?
← →
Чапаев © (2006-11-14 10:37) [17]Гыыыы... По слухам, там ещё и драйверов с полдесятка...
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.045 c