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

Вниз

проблемы с 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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.035 c
8-1073771619
alex-drob
2004-01-11 00:53
2004.04.25
Печать


14-1080813203
Kerk
2004-04-01 13:53
2004.04.25
Пишем ОС


14-1080515082
рограммист
2004-03-29 03:04
2004.04.25
Что такое орешник?


1-1081162182
Layner
2004-04-05 14:49
2004.04.25
Мастера! Можно ли стандартные хинты сделать вечными?


3-1080447814
Артем К.
2004-03-28 08:23
2004.04.25
Как сохранить в таблицу DB значение вычисляемого поля





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский