В операционных системах Windows NT служба Windows — это компьютерная программа , которая работает в фоновом режиме . [1] По своей концепции она похожа на демон Unix . [1] Служба Windows должна соответствовать правилам интерфейса и протоколам диспетчера управления службами , компонента, отвечающего за управление службами Windows. Это приложение служб и контроллеров, services.exe, которое запускает все службы и управляет их действиями, такими как запуск, завершение и т. д. [2]
Службы Windows можно настроить на запуск при запуске операционной системы и на работу в фоновом режиме, пока работает Windows. Кроме того, их можно запускать вручную или по событию. Операционные системы Windows NT включают в себя многочисленные службы , которые работают в контексте трех учетных записей пользователей : System, Network Service и Local Service. Эти компоненты Windows часто связаны с Host Process for Windows Services . Поскольку службы Windows работают в контексте собственных выделенных учетных записей пользователей, они могут работать, когда пользователь не вошел в систему.
До Windows Vista службы, установленные как «интерактивные службы», могли взаимодействовать с рабочим столом Windows и отображать графический пользовательский интерфейс . Однако в Windows Vista интерактивные службы устарели и могут работать некорректно из-за усиления защиты служб Windows . [3] [4]
Администраторы Windows могут управлять службами через:
Оснастка «Службы», созданная на основе консоли управления Microsoft , может подключаться к локальному компьютеру или удаленному компьютеру в сети, позволяя пользователям: [1]
Инструмент командной строки для управления службами Windows — sc.exe. Он доступен для всех версий Windows NT . [7] Эта утилита включена в Windows XP [8] и более поздние версии [9] , а также в ReactOS .
Область управления команды sc
ограничена локальным компьютером. Однако, начиная с Windows Server 2003 , она не только может sc
делать все, что делает оснастка «Службы», но и может устанавливать и удалять службы. [9]
Команда sc
дублирует некоторые функции команды net
. [10]
Версия ReactOS была разработана Гедом Мерфи и распространяется по лицензии GPL . [11]
В следующем примере перечисляется статус активных служб и водителей. [12]
C:\> sc запрос
В следующем примере отображается состояние службы журнала событий Windows . [12]
C:\> sc запрос журнала событий
Модуль Microsoft.PowerShell.Management PowerShell (входит в состав Windows) содержит несколько командлетов, которые можно использовать для управления службами Windows:
Windows также включает компоненты, которые могут выполнять подмножество того, что делают оснастка, Sc.exe и PowerShell. Команда net
может запускать, останавливать, приостанавливать или возобновлять работу службы Windows. [21] В Windows Vista и более поздних версиях диспетчер задач Windows может отображать список установленных служб и запускать или останавливать их. MSConfig может включать или отключать (см. описание типа запуска выше) службы Windows.
Службы Windows устанавливаются и удаляются с помощью скриптов установки *.INF с помощью SetupAPI ; установленную службу можно запустить сразу после ее установки, а работающую службу можно остановить перед ее деинсталляцией. [22] [23] [24]
Чтобы программа работала как служба Windows, она должна быть написана для обработки сообщений о запуске, остановке и приостановке службы от диспетчера управления службами (SCM) через API системных служб. SCM — это компонент Windows, отвечающий за управление процессами служб.
Windows Resource Kit для Windows NT 3.51 , Windows NT 4.0 и Windows 2000 предоставляет инструменты для управления использованием и регистрацией служб: SrvAny.exe
действует как оболочка службы для обработки ожидаемого от службы интерфейса (например, обрабатывает service_start и отвечает через некоторое время service_started или service_failed) и позволяет настроить любой исполняемый файл или сценарий как службу. Sc.exe
позволяет устанавливать, запускать, останавливать и удалять новые службы. [25]
Служба CmdAsSystem настроена как интерактивная, поддержка которой устарела. Служба может работать некорректно. Проблема в том, что этот скрипт пытается создать и запустить интерактивную службу. Интерактивные службы не будут работать корректно из-за изоляции сеанса 0 в Windows Vista.
{{cite web}}
: CS1 maint: postscript (link)Windows 7, Windows 8, Windows Server 2003, Windows Server 2003 R2, Windows Server 2003 с пакетом обновления 1 (SP1), Windows Server 2003 с пакетом обновления 2 (SP2), Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista