Служба Windows
Слу́жба Windows (англ. Windows Service) — приложение, автоматически (если настроено) исполняемое системой при запуске операционной системы Windows и выполняющиеся вне зависимости от статуса пользователя. Имеет общие черты с концепцией демонов в Unix.
Существует несколько режимов для служб:
- запрещён к запуску;
- ручной запуск (по запросу);
- автоматический запуск при загрузке компьютера;
- автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
- обязательная служба/драйвер (автоматический запуск и невозможность (для пользователя) остановить службу).
Windows предлагает диспетчер управления службами (Service Control Manager — SCM), с помощью которого можно управлять созданием, удалением, запуском и остановкой служб. Приложение, имеющее статус службы, должно быть написано таким образом, чтобы оно могло принимать сообщения от SCM. Затем имя службы и её другие атрибуты, например, описание службы, регистрируются в диспетчере управления при помощи одного или нескольких вызовов API.
Запуск, остановка и изменение служб Windows
Службы и их атрибуты могут быть изменены в консоли управления MMC:
Панель управления Windows -> «Administrative Tools» -> «Services».
Управление запуском служб при старте Windows
Список служб находится в ветке Реестра Windows «HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services». Значения параметра «Start» имеют тип «REG_DWORD» и могут принимать значения:
- 0 — Низкоуровневые драйверы, например, драйверы дисков, которые загружаются на самом раннем этапе загрузки — загрузки ядра;
- 1 — Драйверы, которые загружаются после инициализации ядра ОС;
- 2 — Службы, которые должны быть загружены диспетчером управления службами (равен параметру — «Авто»);
- 3 — Службы, запускаемые диспетчером управления службами только в случае получения явной инструкции на загрузку (равен параметру — «Вручную»);
- 4 — Службы, которые не загружаются (равен параметру — «Отключено»).
Управление работой служб из командной строки
Управление службами возможно с помощью командной строки: остановка службы — net stop service_name
, запуск службы — net start service_name
. Например, запуск службы «Диспетчер очереди печати» — «net start spooler».
Удаление службы: sc delete "Имя службы"
(кавычки необходимы, если имя службы содержит пробелы). С удалением нужно быть предельно осторожным, так как удалённую службу вернуть назад очень и очень трудно.
Установка режима запуска службы: sc config "Имя службы" start= параметр запуска
. Параметры запуска: auto (автоматически), demand (вручную), disabled (отключена).
Режим просмотра состояния службы: sc qc "Имя службы"
.
Права пользователя и особенности реализации
Службы Windows по умолчанию запускаются от имени пользователя «LocalSystem», который обладает полными правами в системе (превосходящими права даже учётной записи «Administrator»). Рабочим каталогом будет каталог Windows (определяется переменной WinDir
, которая обычно равна C:\WINNT
или «C:\WINDOWS»), а каталог для хранения временных файлов будет «%WinDir%\TEMP».
Поскольку это не настоящий пользователь, а «системный», то появляются некоторые трудности, когда программе необходимо сохранить данные, относящиеся к пользователю (user-specific data), поскольку домашнего каталога этого пользователя не существует.
Важно также то, что в случае, если служба работает от имени локального пользователя (реальный пользователь, созданный для служебных целей), если пароль такого пользователя изменён, служба не будет запускаться до тех пор, пока пароль для службы тоже не будет изменён.
Список служб
Это неполный список известных служб в операционных системах Windows (Достаточно полный список служб Windows можно посмотреть на OSzone.net).
В различных версиях операционных систем могут присутствовать одни службы и отсутствовать другие. Некоторые программы, устанавливаемые отдельно, также могут создавать свои службы.
Список служб операционных систем Microsoft Windows
Выводимое имя | Имя службы | Функции | Описание |
---|---|---|---|
DHCP-клиент | Dhcp | Регистрирует и обновляет IP-адреса и DNS-записи для этого компьютера. Если эта служба остановлена, этот компьютер не сможет получать динамические IP-адреса и выполнять обновления DNS. | |
DNS-клиент | Dnscache | Служба DNS-клиента (dnscache) кэширует имена DNS (Domain Name System) и регистрирует полное имя данного компьютера. Если служба остановлена, разрешение имен DNS будет продолжаться. Однако результаты очередей имен DNS не будут кэшироваться, и имя компьютера не будет зарегистрировано. | |
KtmRm для координатора распределённых транзакций | KtmRm | Координирует транзакции между MSDTC и диспетчером транзакций ядра (Kernel Transaction Manager - KTM). | |
ReadyBoost | EMDMgmt | ReadyBoost | Поддержка повышения производительности системы с помощью технологии ReadyBoost. |
Superfetch | SysMain | Superfetch | Поддерживает и улучшает производительность системы. |
Windows Audio | Audiosrv | Управление средствами работы со звуком для программ Windows. Если эта служба остановлена, то аудиоустройства и эффекты не будут правильно работать. | |
Windows CardSpace | idsvc | Обеспечивает надежную возможность создания, управления и раскрытия цифровых удостоверений. | |
Автоматическое обновление | WUAUSERV | Включает загрузку и установку обновлений Windows. Если служба отключена, то на этом компьютере нельзя будет использовать возможности автоматического обновления или веб-узел Windows Update. | |
Удалённый вызов процедур (RPC) | RpcSs | Обеспечивает сопоставление конечных точек и иных служб RPC. |
Список служб, создаваемых программами и программами Microsoft
Выводимое имя | Имя службы | Функции | Описание |
---|---|---|---|
NetMeeting Remote Desktop Sharing | mnmsrvc | Разрешает проверенным пользователям получать доступ к рабочему столу Windows через корпоративную интрасеть, используя NetMeeting. |
Примеры служб, создаваемых программами и программами других производителей
Выводимое имя | Имя службы | Функции | Описание |
---|---|---|---|
ESET HTTP Server | EhttpSrv | антивирусная защита | ESET HTTP Server, компонент NOD32, сканирование http-трафика |
NBService | NBService | резервирование | Nero BackItUp Service, создание резервных копий |
Ссылки
- Информация по всем службам Windows
- MSDN Знакомство со служебными приложениями Windows
- Microsoft’s MSDN Library Documentation on Services (недоступная ссылка с 17-12-2017 [2426 дней])
- INSTSRV.EXE is a Windows resource kit program that allows you to install an arbitrary application as a service
- SrvAny and InstSrv Tutorial with many Screenshots
- Службы Windows XP (рус.)