Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.25;
Скачать: 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 вся ветка

Текущий архив: 2004.04.25;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.053 c
1-1081496574
DimaLos
2004-04-09 11:42
2004.04.25
Перевернутый DBGrid


14-1080792433
Паниковский
2004-04-01 08:07
2004.04.25
Набираю команду декодеров!


4-1077724548
Dr.Null
2004-02-25 18:55
2004.04.25
CPU &amp; Memory usege моей проги


4-1077166914
@ac
2004-02-19 08:01
2004.04.25
Как определить, что винда русифицирована?


9-1068053708
katty
2003-11-05 20:35
2004.04.25
Змейка