проблемы при использовании LogonUser
От: Eranov_SV  
Дата: 15.04.04 10:43
Оценка:
Уважаемые!
Помогите пожалуйста с такой вот проблемой: необходимо запустить программу от имени другого пользвателя, для этого использую сначала LogonUser, потом CreateProcessAsUser. Но проблема в следующем, при запуске LogonUser возвращает FALSE. GetLastError() возвращает при этом 1314 (A required privilege is not held by the client) . Может кто-нибудь подсказать в какой-хоть стороне искать решение проблемы?
С уважением,
Сергей

15.04.04 15:37: Перенесено модератором из 'C/C++' — WH
Re: проблемы при использовании LogonUser
От: Tolyan www.kbsoft-group.com
Дата: 15.04.04 11:01
Оценка:
Здравствуйте, Eranov_SV, Вы писали:

E_S>Уважаемые!

E_S>Помогите пожалуйста с такой вот проблемой: необходимо запустить программу от имени другого пользвателя, для этого использую сначала LogonUser, потом CreateProcessAsUser. Но проблема в следующем, при запуске LogonUser возвращает FALSE. GetLastError() возвращает при этом 1314 (A required privilege is not held by the client) . Может кто-нибудь подсказать в какой-хоть стороне искать решение проблемы?
E_S>С уважением,
E_S>Сергей

Чтобы выполнить логонЮзер нужно иметь привилегии SE_TCB_NAME коими обладает только LocalSystem и из пользовательских приложений ими могут облатать только сервисы.

Тебе поможт CreateProcessWithLogonW, но она только начиная с win2k
Re: проблемы при использовании LogonUser
От: davenger  
Дата: 15.04.04 11:02
Оценка:
Здравствуйте, Eranov_SV, Вы писали:

E_S>Уважаемые!

E_S>Помогите пожалуйста с такой вот проблемой: необходимо запустить программу от имени другого пользвателя, для этого использую сначала LogonUser, потом CreateProcessAsUser. Но проблема в следующем, при запуске LogonUser возвращает FALSE. GetLastError() возвращает при этом 1314 (A required privilege is not held by the client) . Может кто-нибудь подсказать в какой-хоть стороне искать решение проблемы?
E_S>С уважением,
E_S>Сергей

Цитата из MSDN (LogonUser):

Windows 2000: The process calling LogonUser requires the SE_TCB_NAME privilege. If the calling process does not have this privilege, LogonUser fails and GetLastError returns ERROR_PRIVILEGE_NOT_HELD


Это значит, что твой пользователь (под который ты запускаешь программу) должен иметь привилегию "Act as part of the operating system". обавить её можно через Administrative tools\Local Security Policies
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.