Служба Windows работает как локальная система, но должна запускать процесс как текущий вошедший в систему пользователь - PullRequest
2 голосов
/ 02 июля 2010

Я использую службу Windows (написанную с использованием .NET) в качестве пользователя - LocalSystem.

Из службы мне нужно запустить процесс, но как зарегистрированный пользователь.Если я использую Process.Start (имя_процесса), он по умолчанию запускается с привилегией службы - это как LocalSystem.Как выдать себя за зарегистрированного пользователя и запустить процесс под тем же именем?

РЕДАКТИРОВАТЬ : У меня не будет доступа к учетным данным пользователя - я не буду знать пароль пользователя.вошедший в систему пользователь

EDIT2 : 2-й комментарий в посте, помеченный как ответ, - вот что помогло.

Ответы [ 2 ]

0 голосов
/ 02 июля 2010

Вы можете запустить процесс, используя ProcessStartInfo - он позволяет установить имя пользователя и пароль для запуска нового процесса как:

ProcessStartInfo startInfo = new ProcessStartInfo("IExplore.exe");
startInfo.UserName = myUserName;
startInfo.Password = myUserPassword;
startInfo.Arguments = "www.northwindtraders.com";
Process.Start(startInfo);

Обновление: (после обновления до вопроса)

Вы можете иметь возможность использовать RunAs для этого - если кто-то предоставит учетные данные.

0 голосов
/ 02 июля 2010
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...