2013-10-15 4 views
1

У меня возникла проблема с запуском процесса из системной учетной записи. Я просто хочу дать понять, что я не пытаюсь запускать его в интерактивном сеансе и не пытаюсь выдавать себя за любую учетную запись. Все, что я пытаюсь сделать, это запустить процесс из системной учетной записи в тот же сеанс. Сессия, в которой находится NTAUTHORITY \ SYSTEM, - 0, я считаю.Запуск процесса из службы под системной учетной записью

Я создал простую службу Windows, которая в основном просто использует Process.start для запуска исполняемого файла. Служба является системным сервисом.

Я установил службу, используя SC, как, например:.

sc create "MYSERVICE" binpath= "C:\Projects\MyService\MyService.exe" displayname= "My Awesome Service" 

При попытке вручную запустить службу я получаю приглашение, которое говорит: «Служба ServiceName на локальных компьютерах началась, а затем остановила Некоторые службы автоматически останавливаются если они не используются другими службами или программами ».

Наряду с этим исполняемый файл никогда не запускается. При мониторинге в processhacker я вижу, что служба запускается, но исполняемый файл, который он пытается, не делает. Может ли кто-нибудь помочь мне понять, почему?

Как я уже говорил ранее моя служба очень проста, все это делает попытаться запустить исполняемый файл при запуске:

protected override void OnStart(string[] args) 
    { 
     Process.Start("svrexec.exe"); 
    } 

    protected override void OnStop() 
    { 
    } 
+0

Сделайте любой из ответов на [этот вопрос] (http://stackoverflow.com/q/6271252/2065121) Помогите? –

ответ

0

ли вы указали полный путь к исполняемому файлу? Рабочая папка для пользователя системы -% windir% \ System32.

Try Path.Combine (AppDomain.CurrentDomain.BaseDirectory, "svrexec.exe"), или установить Environment.CurrentDirectory = AppDomain.CurrentDomain.BaseDirectory

+0

Спасибо за ответ. Нет, я не стал указывать, потому что исполняемый файл фактически находится в папке system32. Я просто попытался прямо указывать на него без каких-либо хороших результатов. Файл является системным файлом, и мне интересно, есть ли у них собственный небольшой руткит, например, настройка, чтобы пользователи не трогали их. Когда я пытаюсь выполнить его из обычной учетной записи пользователя непосредственно из проводника, я получаю сообщение о том, что файл не найден. – user1632018

0

Вы 100% уверены, что он не работает? Я пытался, и мой работает под именем пользователя SYSTEM check Показывать процессы от всех пользователей в диспетчере задач

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