2013-11-11 2 views
1

У меня есть приложение с системной учетной записью. Это приложение запускает другой процесс. Я хочу, чтобы созданный процесс записывался в файл в определенном каталоге (для которого необходимы права учетной записи системы). Как я могу это достичь. Вот код, который запускает мой процесс. I do необходимо запустить второй процесс с системной учетной записью.Добавить привилегии для процесса

CString ProcessFullPath = "myProcessPath"; 
while(NbTrysLaunchingIAPM<=NbMAXTrysLaunchingIAPM && resLaunch==0) 
{      
    resLaunch=CreateProcess(ProcessFullPath.GetBuffer(), 
    NULL, 
    NULL, 
    NULL, 
    FALSE, 
    CREATE_NEW_CONSOLE, 
    NULL, 
    NULL, 
    &si, 
    &pi); 
    if(resLaunch==0) 
    { 
     NbTrysLaunchingIAPM++; 
     Sleep(1000); 
    } 
} 
+1

Не являются ли привилегии администратора, унаследованные от вызывающего процесса? –

+0

Прошу прощения, я смутил системную учетную запись с правами администратора. Я отредактировал мой вопрос – Kira

+0

Я в замешательстве. Это звучит для меня так, как будто вы говорите, что дочерний процесс имеет и не требует прав на системную учетную запись. –

ответ

0

Базового подход (низкий уровень) будет выглядеть так:

  • ChDir в каталог новый процесс будет писать
  • вилки, клон, независимо от
  • привилегии пользователя падения (assuming you're using windows)
  • выполнить процесс

Надеюсь, что помогает.

Смежные вопросы