Отличие службы от приложения. Службы Windows. Запуск службы в интерактивном режиме

Настроить работу служб можно в специальном менеджере Windows. Чтобы открыть его, воспользуйтесь комбинацией клавиш Windows + R, в появившейся строке введите services.msc и нажмите Enter. Вы увидите такое же или похожее (если у вас одна из старых версий ОС) окно:

Менеджер отображает службы в виде таблицы. Здесь можно просмотреть список доступных служб, прочитать их краткое описание и узнать текущий статус. Особую важность представляет столбец «Тип запуска». Именно он показывает, включена ли конкретная служба и в каком режиме она запускается системой.

Кликнув дважды по одной из служб, вы откроете окно, в котором её можно отключить. Достаточно открыть пункт «Тип запуска», выбрать «Отключена» и нажать «Ок». Но среди прочих вариантов запуска есть значение «Вручную». В целях безопасности выбирайте именно его для всех служб, которые вы захотите отключить. Это позволит системе запускать службы, когда они действительно необходимы, и не тратить на них в остальное время.

Не отключайте службы полностью, а только переводите их в ручной режим.

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

Некоторые службы из нашего списка могут быть уже полностью отключёнными на вашем ПК или изначально работать в ручном режиме. В таком случае просто пропускайте их.

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

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

Службы Windows, которые можно перевести в ручной режим работы

Русскоязычные названия некоторых служб из этого списка могут отличаться от тех, которые вы увидите на своём компьютере. Но это касается только формулировок. Если не сможете найти нужную службу по точному названию, ищите варианты, похожие по смыслу.

Windows 10

  • Функциональные возможности для подключённых пользователей и телеметрия (Connected User Experiences and Telemetry).
  • Служба диагностического отслеживания (Diagnostic Tracking Service).
  • dmwappushsvc.
  • Диспетчер скачанных карт (Downloaded Maps Manager) - если вы не используете приложение «Карты».
  • Служба сенсорной клавиатуры и панели рукописного ввода (Touch Keyboard and Handwriting Panel Service).
  • Служба защитника Windows (Windows Defender Service).

Windows 8/8.1

  • Служба политики диагностики (Diagnostic Policy Service).
  • Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) - если компьютер не подключён ни к одной сети.
  • Вспомогательная служба IP (IP Helper) - если вы не используете IPv6-подключение.
  • Служба помощника по совместимости программ (Program Compatibility Assistant Service).
  • Диспетчер печати (Print Spooler) - если у вас нет принтера.
  • Удалённый реестр (Remote Registry) - эту службу можно полностью отключить.
  • Вторичный вход в систему (Secondary Logon).
  • Центр обеспечения безопасности (Security Center).
  • Модуль поддержки NetBIOS через TCP/IP (TCP/IP NetBIOS Helper).
  • Служба регистрации ошибок Windows (Windows Error Reporting Service).
  • Служба загрузки изображений Windows (Windows Image Acquisition, WIA) - если у вас нет сканера.
  • Windows Search - если вы не пользуетесь функцией поиска Windows.

Windows 7

  • Обозреватель компьютеров (Computer Browser) - если компьютер не подключён ни к одной сети.
  • Служба политики диагностики (Diagnostic Policy Service).
  • Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) - если компьютер не подключён ни к одной сети.
  • Вспомогательная служба IP (IP Helper) - если вы не используете IPv6-подключение.
  • Автономные файлы (Offline Files).
  • Служба перечислителя переносных устройств (Portable Device Enumerator Service).
  • Диспетчер печати (Print Spooler) - если у вас нет принтера.
  • Защищённое хранилище (Protected Storage).
  • Удалённый реестр (Remote Registry) - эту службу можно полностью отключить.
  • Вторичный вход в систему (Secondary Logon).
  • Центр обеспечения безопасности (Security Center).
  • Сервер (Server) - если компьютер не используется как сервер.
  • Модуль поддержки NetBIOS через TCP/IP (TCP/IP NetBIOS Helper).
  • Служба регистрации ошибок Windows (Windows Error Reporting Service).
  • Windows Search - если вы не пользуетесь функцией поиска Windows.

Windows Vista

  • Обозреватель компьютеров (Computer Browser) - если компьютер не подключён ни к одной сети.
  • Диспетчер сеансов диспетчера окон рабочего стола (Desktop Window Manager Session Manager) - если не используете тему оформления Aero.
  • Служба политики диагностики (Diagnostic Policy Service).
  • Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) - если компьютер не подключён ни к одной сети.
  • Автономные файлы (Offline Files).
  • Служба перечислителя переносных устройств (Portable Device Enumerator Service).
  • Диспетчер печати (Print Spooler) - если у вас нет принтера.
  • ReadyBoost.
  • Удалённый реестр (Remote Registry) - эту службу можно полностью отключить.
  • Вторичный вход в систему (Secondary Logon).
  • Центр обеспечения безопасности (Security Center).
  • Сервер (Server) - если компьютер не используется как сервер.
  • Служба ввода планшетного ПК (Tablet PC Input Service).
  • Модуль поддержки NetBIOS через TCP/IP (TCP/IP NetBIOS Helper).
  • Темы (Themes) - если вы используете классическую тему Windows.
  • Служба регистрации ошибок Windows (Windows Error Reporting Service).
  • Модуль запуска службы Windows Media Center (Windows Media Center Service Launcher).
  • Windows Search - если вы не пользуетесь функцией поиска Windows.

Windows XP

  • Оповещатель (Alerter).
  • Обозреватель компьютеров (Computer Browser) - если компьютер не подключён ни к одной сети.
  • Клиент отслеживания изменившихся связей (Distributed Link Tracking Client) - если компьютер не подключён ни к одной сети.
  • Служба индексирования (Indexing Service) - если вы не пользуетесь поиском Windows.
  • Брандмауэр интернета (ICF) / Общий доступ к интернету (ICS) (Internet Connection Firewall / Internet Connection Sharing).
  • Служба сообщений (Messenger).
  • Удалённый реестр (Remote Registry) - эту службу можно полностью отключить.
  • Вторичный вход в систему (Secondary Logon).
  • Сервер (Server) - если компьютер не используется как сервер.
  • Служба восстановления системы (System Restore).
  • Модуль поддержки NetBIOS через TCP/IP (TCP/IP NetBIOS Helper).
  • Источник бесперебойного питания (Uninterruptible Power Supply).
  • Диспетчер отгрузки (Upload Manager).
  • Беспроводная настройка (Wireless Zero Configuration).

С точки зрения программной совместимости. Поэтому вполне естественно, что мы возвращаемся к обсуждению служб в контексте Windows 7. Но на этот раз мы поговорим о некоторых выгодах оптимизации служб, доступных в Windows 7. Эта статья посвящена новой возможности Windows 7 – Trigger Start Services . Но прежде, чем обратиться к API, давайте обрисуем общую картину служб.

Что такое службы?

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

Мы предпочитаем считать службы запущенными задачами, работающими в фоновом режиме и не затрагивающими операции пользователя. Службы в Windows отвечают за все виды фоновой активности, начиная с Remote Procedure Call (RPC), Printer Spooler и вплоть до Network Location Awareness.

На протяжении многих лет Windows росла и вместе с тем увеличивалось число служб. Будем честны, фоновые службы в Windows ощущаются довольно болезненно – операционная система изначально поставляется со множеством служб. Помимо этого, независимые разработчики ПО (ISV) и их приложения добавляют еще больше служб. На пример, службы обновления программного обеспечения. Вместе с тем, некоторые службы критически важны и требуются в процессе загрузки, в то время как необходимость в других возникает позже, когда определенный пользователь выполняет вход в систему, а иные и вовсе не нуждаются в запуске, пока не будут вызваны. Несмотря на это, когда вы просматриваете список запущенных в данный момент служб, то видите множество объектов, которым нет необходимости работать по схеме 24х7.

Что плохого в службах, работающих 24 часа в сутки 7 дней в неделю?

Есть несколько проблем, связанных со службами, работающими по схеме 24х7. Во-первых, зачем что-то должно работать (пусть даже и в фоновом режиме), если в нем нет нужды? Любой запущенный процесс (включая службы) использует драгоценную память и ресурсы ЦП, которые могли бы использоваться для других приложений и служб. Если вы подсчитаете все службы, запущенные в определенный момент, то они сложатся в значительный объем памяти, дескрипторов, потоков и использование ЦП. Все эти «растрачиваемые» ресурсы понижают общую производительность компьютера, его отзывчивость и создают впечатление, что компьютер вялый и медлительный. К тому же, поскольку множество служб настроены на автоматический запуск (начинают работать при старте системы), они влияют на время загрузки компьютера.

Во-вторых, эти растрачиваемые ресурсы непосредственным образом сказываются на потреблении электроэнергии. Чем больше нагрузка на ЦП, тем больше электроэнергии потребляет компьютер. Это может быть критически важно для ноутбуков и может сокращать время работы от батареи на несколько часов.

В-третьих, постоянная работа непродуктивного программного обеспечения может привести к утечкам памяти и общей нестабильности системы. Это ведет к сбою в работе приложений и, в конце концов, компьютера.

Наконец, если служба работает по схеме 24х7, и если это хорошо известная служба (которая может оказаться у каждого популярного приложения – например, у PDF Reader), то это создает большую поверхность для атаки. Злоумышленник может воспользоваться сведениями о том, что определенное популярное приложение устанавливает службу, работающую в режиме 24х7, и попытаться взломать ее для получения доступа к компьютеру.

Учитывая все вышесказанное, вы можете удивиться, почему так много разработчиков настраивают свои службы на постоянную работу, если у них имеется другая возможность. Даже до Windows 7 было доступно несколько вариантов запуска служб:

  • Disabled (Отключена) полностью отключает службу и предотвращает ее запуск и запуск зависимых служб – это означает, что пользователь должен включить службу вручную из панели управления или командной строки
  • Manual (Вручную) запускает службу по надобности (в связи с зависимостями других служб) или при вызове службы из приложения при помощи соответствующих API, как будет показано ниже
  • Automatic (Автоматически) запускает службу при входе в систему
  • Automatic Delayed (Автоматический отложенный запуск) – более новый тип запуска, появившийся в Windows Vista, при помощи которого запуск службы происходит после завершения загрузки и выполнения первоначальных операций, что ускоряет запуск системы.

К сожалению, многие ISV (включая саму корпорацию Microsoft) продолжают настраивать свои службы на автоматический (Automated) или автоматический отложенный запуск (Automatic Delayed), поскольку для всех представляется простейшим решением. Служба просто работает 24х7 и всегда доступна, устраняя любую необходимость проверки зависимостей или того, запущена ли служба.

Можно привести множество примеров существующих служб, которые могут расходовать куда меньше ресурсов и стать безопаснее, не работая в режиме 24х7. Например, подумайте о службе обновлений, которая проверяет наличие новых обновлений для приложения. Если компьютер не подключен к сети и не имеет IP-адреса, зачем ей работать? Она ничего не может сделать, так зачем оставлять работающей программу, которая ничего не делает? Подумайте о службе управления политиками, которая используется при изменении групповых политик или при подключении компьютера к домену или отключении от него, но сейчас, когда компьютер подключен к моей домашней сети, служба, опять же, работает впустую.

Появление служб с запуском по триггеру

Решение вышеуказанных проблем заключается в выведении службы из «состояния постоянной работы» в другие виды фоновой активности, такие как запланированные задачи или службы, запускаемые триггером. Эта статья посвящена Windows 7 Trigger Start Services. О Windows 7 Scheduled Tasks можно сказать очень много интересного, что и будет сделано в последующих статьях.

Как запустить приложение в виде службы Windows

Можно ли запустить клиентское приложение в качестве службы? В одной из я описывал способы создания службы Windows штатными средствами ОС. Однако не каждое консольное приложение сможет запуститься как служба, а программы с графическим интерфейсом в принципе не умеют работать подобным образом. Но возможность запустить приложение как службу все же есть, и поможет нам в этом программа с оригинальным названием Non-Sucking Service Manager .

NSSM представляет из себя свободное программное обеспечение с открытым кодом и поддерживает все операционные системы Microsoft, начиная с Windows 2000 и заканчивая Windows 8. NSSM не требует установки, достаточно его загрузить и распаковать. В дистрибутив входят версии для 32- и 64-разрядных ОС. Взять программу можно с сайта nssm.cc , на данный момент последняя стабильная версия 2.21.1, которую я и буду использовать.

Для демонстрации возможностей NSSM попробуем запустить Блокнот Windows в качестве службы на Windows 8.1.

Создание службы

Для создания службы с именем notepad запускаем командную консоль, переходим в папку с распакованным NSSM (для 64-разрядной Windows) и вводим команду nssm install notepad , которая открывает окно графического инсталлятора NSSM. Чтобы создать службу, достаточно в поле Path указать путь к исполняемому файлу и нажать кнопку «Install service». Дополнительно в поле Options можно указать ключи, необходимые для запуска службы.

Также на этапе создания новой службы можно указать некоторые дополнительные параметры.

На вкладке «Shutdown» перечислены методы остановки и таймауты, используемые при штатном завершении работы или аварийной остановке приложения. Когда NSSM получает команду остановки (напр. при завершении работы приложения), то он пытается остановить контролируемое приложение штатным образом. Если же приложение не отвечает, то NSSM может принудительно завершить все процессы и подпроцессы этого приложения.

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

На первом этапе NSSM пытается сгенерировать и отправить событие Ctrl+C. Этот способ хорошо работает для консольных приложений или скриптов, но не применим для графических приложений;
Затем NSSM определяет все окна, созданные приложением, и посылает им сообщение WM_CLOSE, инициирующее выход из приложения;
Третьим этапом NSSM вычисляет все потоки, созданные приложением, и отправляет им сообщение WM_QUIT, которое будет получено если приложение имеет очередь сообщений потока;
И в качестве последнего средства NSSM может вызвать метод TerminateProcess(), принудительно завершив работу приложения.

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

По умолчанию при падении службы NSSM пытается рестартовать ее. На вкладке «Exit actions» можно изменить автоматическое действие при нештатном завершении работы приложения, а также выставить задержку перед автоматическим перезапуском приложения.

На вкладке «Input/Output (I/O)» можно задать перенаправление ввода\вывода приложения в указанный файл.

На вкладке «Environment» можно задать для службы новые переменные окружения, или переопределить существующие.

Также можно не пользоваться графической оболочкой и сразу создать службу в консоли такой командой:

nssm install notepad ″C:\Windows\system32\notepad.exe″

Управление службой

После создания службы с помощью NSSM зайдем в оснастку Services и найдем службу notepad. Как видите, с виду она ничем не отличается от остальных служб, мы также можем ее запустить, остановить или изменить режим запуска. Однако обратите внимание, что в качестве исполняемого файла указан nssm.exe.

А если зайти в Task Manager, то мы увидим следующую картину: в качестве основного (родительского) процесса запущен NSSM, служба notepad запущена как его дочерний процесс, и уже в этом дочернем процессе запущено приложение Блокнот.

Удаление службы

Для удаления службы вводим команду nssm remove notepad и подтверждаем ее удаление. А введя команду nssm remove notepad confirm , можно обойтись и без подтверждения.

Запуск службы в интерактивном режиме

Основное отличие пользовательского приложения от службы заключается в том, что после запуска приложение может требовать для продолжения работы дополнительных действий со стороны пользователя — например нажать кнопку или ввести команду. Для этого необходимо получить к нему доступ, что как оказывается, не так-то просто сделать.

Для того, чтобы запустить службу в интерактивном режиме, надо в оснастке Службы открыть ее свойства и на вкладке «Вход в систему» отметить чекбокс «Разрешить взаимодействие с рабочим столом».

А дальше начинаются чудеса 🙂 Cлужба, запущенная в интерактивном режиме, открывается в изолированном сеансе (session 0). Попасть в этот сеанс можно только при помощи Службы обнаружения интерактивных служб (ui0detect), которая отслеживает запуск интерактивных служб на компьютере и выдает оповещение. В Windows 7\Server 2008 эта служба активна по умолчанию, а в Windows 8\Server 2012 она отключена и не отображается в графической оснастке Службы (по крайней мере я ее там не нашел). Более того, если вы все же найдете эту таинственную службу и попробуете ее запустить, то получите сообщение об ошибке.

А дело в том, что для ее запуска необходимо разрешить запуск интерактивных служб на компьютере. Поэтому открываем редактор реестра, находим в разделе HKLM\System\CurrentControlSet\Control\Windows параметр типа DWORD с именем NoInteractiveServices и ставим его значение в 0 .

После чего открываем консоль PowerShell и стартуем службу обнаружения командой:

Start-Service -Name ui0detect

Убедившись что служба обнаружения запущена, рестартуем службу notepad, и получаем вот такое окошко. Выбираем пункт «Посмотреть сообщение»

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

Такое вот интересное решение для запуска приложений в виде служб Windows. Не самое красивое, но вполне соответствующее своему названию 🙂

Или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых служб возможно исключение - взаимодействие с консолью (сессией с номером 0, в которой зарегистрирован пользователь локально или при запуске службы mstsc с ключом /console).

Существует несколько режимов для служб:

  • запрещён к запуску;
  • ручной запуск (по запросу);
  • автоматический запуск при загрузке компьютера;
  • автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
  • обязательная служба/драйвер (автоматический запуск и невозможность (для пользователя) остановить службу).

Фоновый режим

Запуск, остановка и изменение служб Windows

Службы и их атрибуты могут быть изменены в консоли управления MMC:

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

Список служб операционных систем 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

Примеры служб, создаваемых приложениями и программами других производителей

Выводимое имя Имя службы Функции Описание
ESET HTTP Server EhttpSrv антивирусная защита ESET HTTP Server, компонент

Режимы работы

В большинстве случаев службам запрещено взаимодействие с консолью или рабочим столом пользователей (как локальных, так и удалённых), однако для некоторых служб возможно исключение - взаимодействие с консолью (сессией с номером 0, в которой зарегистрирован пользователь локально или при запуске службы mstsc с ключом /console).

Существует несколько режимов для служб:

  • запрещён к запуску;
  • ручной запуск (по запросу);
  • автоматический запуск при загрузке компьютера;
  • автоматический (отложенный) запуск (введён в Windows Vista и Windows Server 2008);
  • обязательная служба/драйвер (автоматический запуск и невозможность (для пользователя) остановить службу).

Фоновый режим

Запуск, остановка и изменение служб Windows

Службы и их атрибуты могут быть изменены в консоли управления MMC:

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

Список служб операционных систем 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.

Список служб, создаваемых приложениями и программами Microsoft

Список служб, создаваемых приложениями и программами других производителей

См. также

Список служб Windows

Ссылки

  • pcs.suite101.com/article.cfm/index_of_services: Index of Windows XP Services - An Index of the Services running on Windows XP operating system
  • Как удалить службу в Windows Vista или Windows XP
  • Службы Windows XP (рус.)

Wikimedia Foundation . 2010 .

Смотреть что такое "Службы Windows" в других словарях:

    Windows SharePoint Services (WSS) бесплатное дополнение к Microsoft Windows Server 2003 и 2008, реализующее полнофункциональную веб платформу с поддержкой следующих возможностей: Система управления контентом Средства для совместной работы… … Википедия

    Разработчик Microsoft Семейство ОС Windows … Википедия

    Компонент Microsoft Windows … Википедия