Олицетворение и CreateProcess - PullRequest
       1

Олицетворение и CreateProcess

3 голосов
/ 11 октября 2011

В документе говорится, что CreateProcess создает процесс, работающий в контексте безопасности вызывающего процесса, а не в контексте безопасности текущего олицетворяющего токена.Означает ли это, что разрешение для нового процесса будет одинаковым независимо от олицетворения или нет?

У меня есть следующий код, который завершается с ошибкой ACCESS_DENIED:

  1. Процесс A выполняется с правами администратора;
  2. Процесс A олицетворяет обычного «теста» пользователя;
  3. Процесс A начинает новый процесс B, вызывая CreateProcess;
  4. Процесс B вызывает OpenProcessToken (GetCurrentProcess (), TOKEN_QUERY,..);

Шаг 4 завершается ошибкой ACCESS_DENIED (5).Я проверил, что процесс B выполняется под Администратором как процесс A. Почему он не работает, если он работает в том же пользовательском контексте, что и процесс A?

1 Ответ

2 голосов
/ 12 октября 2011

Как сказал комментатор, вы хотите CreateProcessAsUser. Вы можете найти следующий пример кода на MSDN полезным, я успешно использовал его несколько лет назад: http://support.microsoft.com/kb/165194

...