Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» CreateProcessAsUser

Автор: Great_Lesh
Дата сообщения: 22.04.2003 15:38
var
si: STARTUPINFO;
pi: PROCESS_INFORMATION;
cmdline: string;
t: Cardinal;
...
ZeroMemory(@si,sizeof(si));
si.cb:=SizeOf(si);
si.wShowWindow := SW_SHOWNORMAL;
cmdline:='C:\AAA.exe';
LogonUser('Администратор',nil,'password',LOGON32_LOGON_INTERACTIVE,LOGON32_PROVIDER_DEFAULT, t);
DuplicateTokenEx(t, TOKEN_EXECUTE+TOKEN_WRITE, nil, SecurityImpersonation , TokenPrimary, t);
CreateProcessAsUser(t,PChar(cmdline),nil,nil,nil,False,NORMAL_PRIORITY_CLASS or CREATE_NEW_CONSOLE,nil,nil, si,pi );

Пишет, что ошибка №5. В чем тут дело, что неверно. Если кто знает - помогите.
Спасибо.
Автор: sashado
Дата сообщения: 22.04.2003 23:43
Пример на C++ лежит здесь:

http://www.develop.com/kbrown/security/code/cmdasuser.zip
Автор: Bacilla
Дата сообщения: 24.04.2003 10:00
5 ошибка - ERROR_ACCESS_DENIED

создай новый аккаунт с паролем, зайди под ним и соответственно поменяй LogonUser !

будут вопросы спрашивай!
Автор: drewha
Дата сообщения: 25.04.2003 16:51
У меня работает следующий вариант:

var
si:Tstartupinfo;
p :Tprocessinformation;
dwCreationFlags: DWORD;
token:thandle;

Begin
logonuser(pchar(login), '.', pcharpassword), LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, token);
FillChar( Si, SizeOf( Si ) , 0 );
Si.cb := SizeOf( Si);
dwcreationFlags:=Create_default_error_mode+CREATE_NEW_CONSOLE;
CreateprocessAsUser(token,nil,pchar(filename+' '+cmdstr), nil,nil,false,dwcreationflags,nil, pchar(extractfiledir(filename)), si,p)

Страницы: 1

Предыдущая тема: Borland C++


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.