Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

CreateProcessAsUser

335
25 августа 2005 года
enola
379 / / 25.01.2005
Добрый день!

Вот запускаю прогу а она мне: Клиент не обладает требуемыми правами!
Хотя при запуске "руками" этой проги от имени другого пользователя все работает.

Код:
HANDLE hToken;
    STARTUPINFO StartInfo = {sizeof(TStartupInfo)};
    PROCESS_INFORMATION ProcInfo;
    StartInfo.cb = sizeof(StartInfo);
    StartInfo.dwFlags = STARTF_USESHOWWINDOW;
    StartInfo.wShowWindow = SW_SHOWNORMAL;

    if( !LogonUser("админ", "домен", "пароль", LOGON32_LOGON_SERVICE, LoGON32_PROVIDER_DEFAULT, &hToken)){
    LPVOID lpMsgBuf;
    FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,
                 NULL,
                 GetLastError(),
                 MAKELANGID(LANG_NEUTRAL,
                 SUBLANG_DEFAULT),
                 (LPTSTR) &lpMsgBuf,
                 0,
                 NULL);
    ShowMessage( StrPas( ( LPSTR)lpMsgBuf));
    LocalFree( lpMsgBuf );
    }

    CreateProcessAsUser(hToken, "c:\\myapp.exe", "c:\\myapp.exe", NULL, NULL, false, HIGH_PRIORITY_CLASS, NULL, NULL, &StartInfo, &ProcInfo);

    CloseHandle(ProcInfo.hProcess);


раньше все работало, а потом что-то я поправил, и перестала, замучился уже, может, кто подскажет, в чем дело?
335
26 августа 2005 года
enola
379 / / 25.01.2005
Народ ну что никто не знает?
335
26 августа 2005 года
enola
379 / / 25.01.2005
Может можно как-нибудь по другому запустить программу от имени пользователя?

А вот интересно в RunAs сразу пароль в комманде указать можно?

Вообще у меня LogonUser не проходит, люди помогите!
310
26 августа 2005 года
fellow
853 / / 17.03.2003
Если работала до правки, и потом перестала, так поправь всё назад :)

Поиграй с параметрами LogonUser. И, кстати, какую именно ошибку выдаёт GetLastError. Может быть, процесс, вызывающий LogonUser, не обладает нужными привилегиями?

Читал, что в справке Win32 SDK или в MSDN про LogonUser написано? Или наугад действуешь ;)
335
26 августа 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by fellow
Если работала до правки, и потом перестала, так поправь всё назад :)

Поиграй с параметрами LogonUser. И, кстати, какую именно ошибку выдаёт GetLastError. Может быть, процесс, вызывающий LogonUser, не обладает нужными привилегиями?

Читал, что в справке Win32 SDK или в MSDN про LogonUser написано? Или наугад действуешь ;)



я бы рад все назад да не получается :)
GetLastError() выдает: 1314 A required privilege is not held by the client.
с MSDN делал все, не работает, привелегий ему не хватает, а как сделать не знаю, может есть рабочий пример?

335
26 августа 2005 года
enola
379 / / 25.01.2005
вот так нужно делать (мне подсказали):

PROCESS_INFORMATION ProcInfo;
STARTUPINFOW StartInfo;
ZeroMemory(&StartInfo, sizeof(STARTUPINFOW));
StartInfo.cb = sizeof(STARTUPINFOW);
StartInfo.lpDesktop = 0;

CreateProcessWithLogonW( L"user", L"domen", L"pass", LOGON_WITH_PROFILE, NULL, L"notepad.exe", CREATE_DEFAULT_ERROR_MODE | CREATE_NEW_CONSOLE, NULL, NULL,
&StartInfo, &ProcInfo )

и все работает!
310
26 августа 2005 года
fellow
853 / / 17.03.2003
Ну, можно и так, если только под вин2к.
А так, рой в сторону OpenProcessToken и SetPrivilege
335
29 августа 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by fellow
Ну, можно и так, если только под вин2к.
А так, рой в сторону OpenProcessToken и SetPrivilege



а что под XP работать не будет?

на MSDN пишут:

Цитата:
Requires Windows "Longhorn", Windows XP, or Windows 2000 Professional.

310
29 августа 2005 года
fellow
853 / / 17.03.2003
Цитата:
Originally posted by enola
а что под XP работать не будет?


Это я к тому, что про W'95, линолеум и W'98 можно забыть.

335
29 августа 2005 года
enola
379 / / 25.01.2005
Цитата:
Originally posted by fellow
Это я к тому, что про W'95, линолеум и W'98 можно забыть.


ну так это я знаю. теперь будет новая тема :)

299
29 августа 2005 года
3D Bob
885 / / 18.04.2005
Цитата:
Originally posted by fellow
Это я к тому, что про W'95, линолеум и W'98 можно забыть.


Я думаю в этих бы видах и такх проблем бы особо не было бы...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог