Вниз
Скачать: CL | DM;

проблемы с CreateProcessAsUser   Найти похожие ветки 

← →
CrytoGen   (2004-02-25 14:11) [0]

возникает проблема с вызовом функции CreateProcessAsUser.
нормально проходит вызов LogonUser, а при вызове CreateProcessAsUser появляется ошибка "Клиент не обладает требуемыми правами".
Может кто-нибудь сталкивался с подобной проблемой?
где что настроить?


← →
Игорь Шевченко ©   (2004-02-25 14:24) [1]

If your process has the SE_TCB_NAME privilege, it can call the LogonUser function to get a primary token that represents a specified user.

Я сильно сомневаюсь, что у тебя есть эта привилегия.

Попробуй посмотреть в сторону CreateProcessWithLogonW


← →
CrytoGen   (2004-02-25 14:35) [2]

эту привилегию я получаю, и вроде бы получение происходит нормально, кроме того ошибка в этом случае бы возникала при вызове LogonUser...


← →
Игорь Шевченко ©   (2004-02-25 14:39) [3]

CrytoGen   (25.02.04 14:35)


> эту привилегию я получаю


Научи ? :)


← →
CrytoGen   (2004-02-25 14:40) [4]

:)
кроме того я не нашёл CreateProcessWithLogonW в Delphi


← →
Игорь Шевченко ©   (2004-02-25 14:48) [5]

CrytoGen   (25.02.04 14:40)

Может быть, тебе только кажется, что ты ее получаешь ?
Кстати, неплохо бы и код привести...

function CreateProcessWithLogonW (const lpUsername : PWideChar;
 const lpDomain : PWideChar; const lpPassword : PWideChar;
 dwLogonFlags : DWORD; const lpApplicationName : PWideChar;
 lpCommandLine : PWideChar; dwCreationFlags : DWORD;
 lpEnvironment : Pointer; const lpCurrentDirectory : PWideChar;
 lpStartupInfo : PStartupInfo;
 lpProcessInfo : PProcessInformation) : Boolean; stdcall;
 external "advapi32.dll" name "CreateProcessWithLogonW"


← →
CrytoGen   (2004-02-25 14:52) [6]

функция не возвращает ошибки
...
function SetPrivilege(aPrivilegeName:String;aEnabled:boolean):boolean;
    var TPPrev,TP:TTokenPrivileges;
        Token:THandle;
        dwRetLen:DWord;
begin
Result:=False;
OpenProcessToken(GetCurrentProcess,TOKEN_ADJUST_PRIVILEGES or TOKEN_QUERY,Token);
TP.PrivilegeCount:=1;
if (LookupPrivilegeValue(nil,PChar(aPrivilegeName),TP.Privileges[0].LUID)) then
begin
  if aEnabled then
   TP.Privileges[0].Attributes:=SE_PRIVILEGE_ENABLED
  else
   TP.Privileges[0].Attributes:=0;
  dwRetLen:=0;
  Result:=AdjustTokenPrivileges(Token,False,TP,SizeOf(TPPrev),TPPrev,dwRetLen);
  Win32Check(Result);
end;
CloseHandle(Token);
end;
begin
 if SetPrivilege("SeTcbPrivilege",True) then
 begin
...


← →
Игорь Шевченко ©   (2004-02-25 15:02) [7]

CrytoGen   (25.02.04 14:52)

Вставь после строчки
Win32Check(Result)

строчки
   if GetLastError <> ERROR_SUCCESS then
     Result := false;

Будешь приятно удивлен.


← →
CrytoGen   (2004-02-25 15:06) [8]

уже поздно, я всё переделал... :) под CreateProcessWithLogonW
странная вещь...
консольное приложение запущенное таким образом не создаёт файл, а вот запущенное обычным образом создаёт :)


← →
Игорь Шевченко ©   (2004-02-25 15:08) [9]


> консольное приложение запущенное таким образом не создаёт
> файл, а вот запущенное обычным образом создаёт


Если бы ты выражал свои мысли более понятным образом, я бы попытался понять проблему. К сожалению, я не вижу твоего экрана и событий, происходящих на нем, поэтому мне трудно дать какую-либо консультацию.


← →
CrytoGen   (2004-02-25 16:03) [10]

Новая ошибка...
"Наложение ввода вывода", что это может быть?
и как с этим бороться?



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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
3-1080716239
Timur
2004-03-31 10:57
2004.04.25
DBF в delphi


6-1077948390
shtacs
2004-02-28 09:06
2004.04.25
TWebBrowser для ОффЛайн! Как реализовать?


3-1080714835
russko
2004-03-31 10:33
2004.04.25
Вопрос по DBGridEh


1-1080803645
pasha_golub
2004-04-01 11:14
2004.04.25
Реализация компонента-обертки


7-1077161997
ma5ter
2004-02-19 06:39
2004.04.25
Хочу писать модули на ассемблере




   Наверх