Использую для сабжа функции LogonUser и CreateProcessAsUser.CreateProcessAsUser "вылетает" с Error 1314 — ERROR_PRIVILEGE_NOT_HELD — у Вас нет необходимой для этой функции привилегии.
Вся проблема в том, что для выполнения многих функций в WinNT требуются специальные права( привилегии). Использую WinXP под админом.
Проблема в том, что получать их нет необходимости — они либо есть либо их нет.. Есть они ТОЛЬКО у системных процессов, а простым пользователям и администраторам они недоступны.
Но в Windows2000 и WinXP ведь есть "Запуск программы от имени другого пользователя". Значит какая-то возможность есть. Слышал, что в WinXP SE_TCB_NAME привилегии для LogonUser не надо. Но это ситуции не меняет т.к она нужна для функции CreateProcessAsUser. Кто сталкивался или писал что-то подобное — подскажите, плиз!
Здравствуйте Maxus, Вы писали:
M>Использую для сабжа функции LogonUser и CreateProcessAsUser.CreateProcessAsUser "вылетает" с Error 1314 — ERROR_PRIVILEGE_NOT_HELD — у Вас нет необходимой для этой функции привилегии.
M>Вся проблема в том, что для выполнения многих функций в WinNT требуются специальные права( привилегии). Использую WinXP под админом.
M>Проблема в том, что получать их нет необходимости — они либо есть либо их нет.. Есть они ТОЛЬКО у системных процессов, а простым пользователям и администраторам они недоступны.
M>Но в Windows2000 и WinXP ведь есть "Запуск программы от имени другого пользователя". Значит какая-то возможность есть. Слышал, что в WinXP SE_TCB_NAME привилегии для LogonUser не надо. Но это ситуции не меняет т.к она нужна для функции CreateProcessAsUser. Кто сталкивался или писал что-то подобное — подскажите, плиз!
M>
CreateProcessWithLogonW
Здравствуйте Alex Fedotov, Вы писали:
AF>CreateProcessWithLogonW
Спасибо! Да, я встречал такое решение проблемы. Нашел описание функции в MSDN.
Но вот в заголовочных файлах я ее не нашел. Может где-то есть обновленные "заголовки". Хотя можно ее загрузить из advapi32.dll. Как Вы решали данную проблему?
Здравствуйте Maxus, Вы писали:
M>Здравствуйте Alex Fedotov, Вы писали:
AF>>CreateProcessWithLogonW
M>Спасибо! Да, я встречал такое решение проблемы. Нашел описание функции в MSDN.
M>Но вот в заголовочных файлах я ее не нашел. Может где-то есть обновленные "заголовки". Хотя можно ее загрузить из advapi32.dll. Как Вы решали данную проблему?
вот так
#define _WIN32_WINNT 0x0500
Здравствуйте Алекс, Вы писали:
M>>Спасибо! Да, я встречал такое решение проблемы. Нашел описание функции в MSDN.
M>>Но вот в заголовочных файлах я ее не нашел. Может где-то есть обновленные "заголовки". Хотя можно ее загрузить из advapi32.dll. Как Вы решали данную проблему?
А>вот так
А>А>#define _WIN32_WINNT 0x0500
А>
Да я на Дельфи ваяю. Там что делать?
У меня проблема там есть параметр dwLogonFlags, который может принимать значения :
LOGON_WITH_PROFILE Log on with profile.
LOGON_NETCREDENTIALS_ONLY Log on with only network credentials.
А откуда возмется его значение (DWORD), если в "заголовках" нет таких констант?
Спасибо за советы!
Здравствуйте Maxus, Вы писали:
[]
M>Да я на Дельфи ваяю. Там что делать?
M>У меня проблема там есть параметр dwLogonFlags, который может принимать значения :
M>LOGON_WITH_PROFILE Log on with profile.
M>LOGON_NETCREDENTIALS_ONLY Log on with only network credentials.
M>А откуда возмется его значение (DWORD), если в "заголовках" нет таких констант?
M>Спасибо за советы!
//winbase.h
#define LOGON_WITH_PROFILE 0x00000001
#define LOGON_NETCREDENTIALS_ONLY 0x00000002
А лучше скачай Platform SDK.