2013-04-26 2 views
0

Am работает над созданием службы Windows и запуск приложения ехе через это,службы Windows не запускается как локальный сеанс

по этой ссылке я создал сервис Windows Windows Service

Но когда я создать установку и развертывание а затем, если я устанавливаю, exe, который звонит из службы, запускается как LOCAL SERVICE.

Все еще я могу xxx.exe в диспетчере задач как ЛОКАЛЬНОЕ ОБСЛУЖИВАНИЕ.

Я не могу понять, даже с этой помощью: Launching GUI from windows service

Как я могу запустить этот ехе как локальное имя пользователя, который я вошедший в?

ответ

1

У вас есть несколько вариантов для создания процесса, который работает под другим пользователем от родительского процесса:

  • CreateProcessAsUser или CreateProcessWithTokenW. Они требуют, чтобы вы получили первичный токен, который представляет пользователя, вызывая либо LogonUser, либо DuplicateTokenEx.
  • CreateProcessWithLogonW, который позволяет указать имя пользователя и пароль в качестве параметров.

Однако, если вы хотите, чтобы процесс, который вы создавали, отображался на интерактивном рабочем столе, вам нужно выполнить небольшую работу. В этой статье описываются детали: Launching an interactive process from Windows Service in Windows Vista and later.

+0

Большое спасибо. Теперь я могу развернуть exe с локальным сеансом. Но когда я убиваю exe из диспетчера задач, служба не перезапускает exe – user1465461

+0

Это похоже на совершенно другой вопрос. Разве я не ответил на вопрос, который вы задали? –

+0

Определенно да, это ответ, который я ищу – user1465461