Windows CreateProcess как локальная система - PullRequest
0 голосов
/ 10 мая 2018

Служба работает как локальная система.Я использую функцию CreateProcess для вызова внешнего .exe.Какая учетная запись по умолчанию используется при вызове функции CreateProcess?Я не смог найти ничего по умолчанию в учетной записи MSDN.Кроме того, я хочу, чтобы этот процесс был постоянным до тех пор, пока не будет запущена служба времени.Должен ли я использовать CreateService?

1 Ответ

0 голосов
/ 10 мая 2018

CreateProcess создает процесс, который запускается от имени того же пользователя, что и родительское приложение, и запускается в том же сеансе. Вы должны использовать CreateProcessAsUser / CreateProcessWithLogonW / CreateProcessWithTokenW чтобы создать процесс как другой пользователь. Единственное исключение - ShellExecute, которое может создать процесс от имени другого пользователя, если используется повышение прав UAC и пользователь не является администратором.

Если вам нужно взаимодействовать с другим сервисом, вы можете использовать ChangeServiceConfig, чтобы заставить себя зависеть от другого сервиса. Диспетчер управления службами сначала запустит другую службу, прежде чем запустить вашу службу.

...