В операционных системах Windows NT служба Windows — это компьютерная программа , работающая в фоновом режиме . [1] По своей концепции он аналогичен демону Unix . [1] Служба Windows должна соответствовать правилам интерфейса и протоколам диспетчера управления службами — компонента, отвечающего за управление службами Windows. Это приложение «Службы и контроллер», Services.exe, которое запускает все службы и управляет их действиями, такими как запуск, завершение и т. д. [2]
Службы Windows можно настроить так, чтобы они запускались при запуске операционной системы и работали в фоновом режиме, пока работает Windows. Альтернативно, их можно запустить вручную или по событию. Операционные системы Windows NT включают в себя множество служб , которые запускаются в контексте трех учетных записей пользователей : «Система», «Сетевая служба» и «Локальная служба». Эти компоненты Windows часто связаны с хост-процессом для служб Windows . Поскольку службы 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
Модуль PowerShell Microsoft.PowerShell.Management (входящий в состав 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, Windows Server 2003 с пакетом обновления 2, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Vista