Запустить программу от имени другого пользователя
От: Maxus  
Дата: 25.07.02 01:34
Оценка:
Использую для сабжа функции LogonUser и CreateProcessAsUser.CreateProcessAsUser "вылетает" с Error 1314 — ERROR_PRIVILEGE_NOT_HELD — у Вас нет необходимой для этой функции привилегии.
Вся проблема в том, что для выполнения многих функций в WinNT требуются специальные права( привилегии). Использую WinXP под админом.
Проблема в том, что получать их нет необходимости — они либо есть либо их нет.. Есть они ТОЛЬКО у системных процессов, а простым пользователям и администраторам они недоступны.
Но в Windows2000 и WinXP ведь есть "Запуск программы от имени другого пользователя". Значит какая-то возможность есть. Слышал, что в WinXP SE_TCB_NAME привилегии для LogonUser не надо. Но это ситуции не меняет т.к она нужна для функции CreateProcessAsUser. Кто сталкивался или писал что-то подобное — подскажите, плиз!
Re: Запустить программу от имени другого пользователя
От: Alex Fedotov США  
Дата: 25.07.02 02:13
Оценка:
Здравствуйте 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
Re[2]: Запустить программу от имени другого пользователя
От: Maxus  
Дата: 25.07.02 04:25
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>CreateProcessWithLogonW


Спасибо! Да, я встречал такое решение проблемы. Нашел описание функции в MSDN.
Но вот в заголовочных файлах я ее не нашел. Может где-то есть обновленные "заголовки". Хотя можно ее загрузить из advapi32.dll. Как Вы решали данную проблему?
Re[3]: Запустить программу от имени другого пользователя
От: Алекс Россия http://wise-orm.com
Дата: 25.07.02 04:45
Оценка:
Здравствуйте Maxus, Вы писали:

M>Здравствуйте Alex Fedotov, Вы писали:


AF>>CreateProcessWithLogonW


M>Спасибо! Да, я встречал такое решение проблемы. Нашел описание функции в MSDN.

M>Но вот в заголовочных файлах я ее не нашел. Может где-то есть обновленные "заголовки". Хотя можно ее загрузить из advapi32.dll. Как Вы решали данную проблему?

вот так
#define _WIN32_WINNT 0x0500
Re[4]: Запустить программу от имени другого пользователя
От: Maxus  
Дата: 25.07.02 04:57
Оценка:
Здравствуйте Алекс, Вы писали:

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), если в "заголовках" нет таких констант?

Спасибо за советы!
Re[5]: Запустить программу от имени другого пользователя
От: Алекс Россия http://wise-orm.com
Дата: 25.07.02 06:27
Оценка:
Здравствуйте 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.
Re[6]: Запустить программу от имени другого пользователя
От: Аноним  
Дата: 25.07.02 06:38
Оценка:
Здравствуйте Алекс, Вы писали:

А>//winbase.h

А>#define LOGON_WITH_PROFILE 0x00000001
А>#define LOGON_NETCREDENTIALS_ONLY 0x00000002
А>[/ccode]

А>А лучше скачай Platform SDK


Спасибо, Алекс!! Выручили!
В моем winbase.h этого нет. :-(

Еще раз спасибо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.