Как запустить исполняемый файл как системный сервис? - PullRequest
0 голосов
/ 20 марта 2010

У меня есть приложение для распространения файлов и данных, написанное на .NET 2.0, которое я написал аналогично Steam.

Это приложение должно будет работать в Windows 7 и должно иметь возможность запускать и устанавливать приложения, требующие прав администратора. Однако пользователи не будут иметь прав администратора.

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

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

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

Заранее спасибо!

1 Ответ

2 голосов
/ 20 марта 2010

Недостаточно просто запустить службу; обычно вы не можете просто взять приложение (особенно интерактивное), переключить его и сделать его сервисом.

Общий шаблон в этой области - разделение вашего приложения: пользовательский интерфейс запускается по требованию, как обычно, с правами пользователя, а также существует постоянная служба, с которой пользователь взаимодействует. Как правило, это разделение выполняется для проблем с разрешениями (например, у вас) или для возможности выполнения действий, даже если пользовательский интерфейс закрыт.

В вашем случае вы не сможете использовать службу для запуска приложений, поскольку служба обычно не имеет доступа к рабочему столу вошедшего в систему пользователя. Он также не будет иметь (простого) доступа к кусту HKEY_CURRENT_USER в реестре, поскольку локальная система отличается от учетной записи пользователя настольного компьютера.

...