Подтвердить что ты не робот

Как служба Windows отличается от стандартного exe?

В чем разница между службой Windows и стандартным exe?

4b9b3361

Ответ 1

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

Вы использовали бы службу Windows для вещей, которые всегда нужно запускать, даже если никто не вошел в систему.

Вы бы использовали стандартный EXE для программ, которые пользователь будет запускать во время входа в систему.

Ответ 2

Служба Windows имеет специальную функцию ServiceMain и должна правильно отвечать на команды диспетчера управления службами (SCM), чтобы функционировать как сервис. С другой стороны, обычный исполняемый файл имеет функцию main или WinMain и не требует ответа на какие-либо конкретные команды управления.

Ответ 3

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

Выберите exe, если:

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

Выберите услугу, если:

  • Возможно, потребуется запустить, когда никто не зарегистрировался
  • Как правило, пользователям не нужны данные или привилегии
  • Он общается исключительно с сетью
  • Он должен раскрывать новые "защищаемые" объекты. Объекты, которые имеют свои собственные декларативные списки контроля доступа (DACL), которые ограничивают доступ к определенным учетным записям/группам.
  • Ему нужны специальные разрешения, которые могут быть недоступны для зарегистрированного пользователя.

Службы могут легко быть дырами в области безопасности, поэтому предпочитайте использовать .exe для служб. Иногда вам нужны оба. Средство проверки вирусов должно иметь доступ к каждому файлу файловой системы (который может не выполнить текущий пользователь), но он также должен предоставлять информацию пользователю в виде диалоговых окон/всплывающих окон и инструмента иконка панели задач. Сервисы не могут напрямую взаимодействовать с пользовательским графическим интерфейсом. Они могут использовать стандартные службы Windows IPC (межпроцессные коммуникации), такие как каналы и области общей памяти. Такие инструменты обычно имеют как службу, так и автономный файл без окна .exe, который взаимодействует с сервисом с использованием труб Windows или разделяемых областей памяти.

Получите "Программирование безопасности Windows" Кейта Брауна, если вы хотите погрузиться в эти темы.

Ответ 4

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

Ответ 5

С точки зрения двоичного файла EXE и с точки зрения библиотеки компилятора C служба Windows выглядит точно так же, как стандартная программа Unix или консольная программа Windows. т.е. с точкой входа main(). Что отличает сервис от того, как он загружается/вызывается Microsoft Windows (из реестра, как правило, при загрузке). Служба может (и должна) сообщать приложению SC.exe [Service Control Manager] через вызовы Windows API, что служба запущена, остановлена, приостановлена ​​и т.д.