Управление службами Windows с помощью PowerShell
Рекомендуется также ознакомиться со статьёй «Настройка рабочего окружения PowerShell в Windows и Linux».
PowerShell — это среда автоматизации задач и управления конфигурацией от Microsoft. В этом разделе мы познакомим вас с тем, как управлять службами Windows через PowerShell, поскольку это намного быстрее и эффективнее, чем другие методы.
Как вы, возможно, знаете, одной из наиболее важных частей каждой операционной системы является служба, которая проходит через неё, и в целом можно сказать, что каждая часть операционной системы, которая запускается, имеет определённую службу, которой можно управлять и контролировать.
Вот подробное руководство по использованию PowerShell для управления службами Windows.
Запустите терминал PowerShell с правами администратора. Для этого нажмите Win+x и выберите Windows PowerShell (администратор):
Сначала вы должны получить список доступных служб, используя следующую команду:
Get-Service
Это образец вывода, который вы получите.
В выводе по умолчанию вы увидите 3 основных раздела: Status (Статус), Name (Имя) и DisplayName (Отображаемое имя). Теперь, если вы хотите найти и перечислить конкретный сервис, вы можете отфильтровать любой из параметров.
Примеры.
Показать все службы, названия которых начинаются с wi:
Get-Service -Name wi*
Показать все службы, отображаемые имена которых начинаются с win:
Get-Service -DisplayName win*
Примечание: если вы хотите получить доступ к другому компьютеру через сеть, вы можете просмотреть список служб для этой системы с помощью этой команды:
Get-Service -ComputerName СЕРВЕР1
Важной частью управления услугами является управление зависимыми службами.
Чтобы получить доступ к списку DependentServices для конкретной службы, мы можем использовать следующую команду:
Get-Service -Name ИМЯ_СЛУЖБЫ -DependentServices
Например:
Get-Service -Name WSearch -DependentServices
Вы также можете использовать параметр RequiredServices, чтобы получить список предварительных условий обслуживания.
Get-Service -Name ИМЯ_СЛУЖБЫ -RequiredServices
Например:
Get-Service -Name WSearch -RequiredServices
Таким образом, с помощью приведённых выше команд мы можем найти название службы, которая вам нужна, увидеть статус и связанные службы или их предварительные условия. Теперь рассмотрим команды управления службами.
Для остановки службы с помощью PowerShell вы можете использовать следующую команду:
Stop-Service -Name ИМЯ_СЛУЖБЫ
Например:
Stop-Service -Name Apache2.4
Последующие примеры будут показываться на службе Apache2.4. То есть в следующих командах замените «Apache2.4» на имя интересующей вас службы.
Для запуска службы в PowerShell вы можете использовать эту команду:
Start-Service -Name Apache2.4
Одной из наиболее часто используемых команд для работы со службами является команда перезапуска службы. Структура команды перезапуска службы такова:
Restart-Service -Name Apache2.4
И наконец, следующая команда используется для временного приостановления службы.
Suspend-Service -Name Apache2.4
Для изменения режима запуска службы используйте команду вида:
Set-Service -Name ИМЯ_СЛУЖБЫ -StartupType ТИП_ЗАПУСКА
В качестве ТИП_ЗАПУСКА могут быть:
- Automatic — служба будет запущена или была запущена операционной системой при запуске системы. Если автоматически запускаемая служба зависит от запускаемой вручную службы, запускаемая вручную служба также запускается автоматически при запуске системы.
- AutomaticDelayedStart — запускается вскоре после загрузки системы.
- Disabled — служба отключена и не может быть запущена пользователем или приложением.
- InvalidValue — не имеет никакого эффекта. Командлет не возвращает ошибку, но StartupType службы не изменяется.
- Manual — служба запускается только вручную, пользователем, с помощью диспетчера управления службами или приложением.
Это наиболее часто используемые команды для управления службами в PowerShell. Для получения дополнительной информации о командах PowerShell и о том, как они работают, используйте команду Get-Help.
Например:
Get-Help *-Service Get-Help New-Service
NSSM
NSSM — программа, предназначенная для создания служб из исполняемых файлов Windows, в том числе и из графических утилит, что ставит её на уровень выше средств от Microsoft. С её помощью можно запускать большинство приложений, даже которые рассчитаны на взаимодействие с пользователем.
В архиве для скачивания можно найти версию для 64-битной версии Windows (папка win64), для 32-битной (папка win32) и исходные коды приложения (папка src). Выбираем нужное приложение под разрядность своей системы, копируем его в удобное для вас место на жестком диске. Никакая установка приложения не требуется.
Пример использования:
- Предположим, нужно создать службу для веб-сервера nginx под Windows. Для этого, запускаем командную строку с правами администратора, и переходим в директорию с распакованным исполняемым файлом nssm.exe.
-
Затем выполняем команду, начинающую установку службы:
- Откроется окно с настройками создаваемой службы.
На самой первой вкладке «Application», в строке «Path» задается путь к исполняемому файлу, «Startup Directory» — рабочая директория, а «Arguments» — параметры запуска. В самом низу расположена строка «Service Name», где задается имя создаваемого сервиса.
На вкладке «Details» можно задать имя, под которым будет отображаться создаваемая служба в списке служб, а так же описание службы, которое будет отображаться там же. В выпадающем списке «Startup Type» можно выбрать тип запуска службы.
Вкладка «Log on» позволяет указать пользователя, под которым будет запускаться служба.Заполним все нужные поля и выбрав нужные настройки, остается только нажать кнопку «Install service», для установки службы. - После нажатия кнопки «Install service», служба будет создана, но при этом запустить её нужно будет вручную (либо перезагрузить компьютер, чтобы служба с параметром запуска «Auto» запустилась при его запуске).
Так же удалить службу можно с помощью команды в командной строке:
Удаление службы
И подтверждаем действие нажатием кнопки «Да» в миниатюрном диалоговом окошке.
Ну вот, теперь вы знаете, как создавать собственные службы для утилит и скриптов, которые могут работать независимо от пользователя в скрытом режиме.
Когда в работе какой-то программы происходит ошибка, Windows автоматически регистрирует это событие и запускает штатную Читать далее
За время существования Windows был создан не один аналог Диспетчера задач, но все его альтернативы Читать далее
Помимо удаления из автозагрузки лишних приложений, одним из способов ускорить загрузку Windows является изменение приоритета Читать далее
Для устранения типичных неполадок в Windows 10 предусмотрен набор утилит, который так и называется — Читать далее
Создание нового проекта
Чтобы создать новый проект службы рабочей роли с помощью Visual Studio, выберите Файл > Создать > Проект. В диалоговом окне Создание нового проекта выполните поиск по запросу «служба рабочей роли» и выберите шаблон «Служба рабочей роли». Если вы предпочитаете использовать .NET CLI, откройте используемый терминал в рабочем каталоге. Выполните команду и замените именем проекта.
Дополнительные сведения о команде .NET CLI для создания проекта службы рабочей роли см. .
Совет
Если вы используете Visual Studio Code, вы можете выполнять команды .NET CLI из интегрированного терминала. Дополнительные сведения см. в статье Visual Studio Code: интегрированный терминал.
Синтаксис и параметры команды SC CREATE
sc create
- имя_сервера – Задает имя удаленного сервера, на котором находится служба. В имени следует использовать формат UNC («\myserver»). Чтобы запустить SC локально, этот параметр следует пропустить.
- имя_службы – Указывает имя службы, возвращенное операцией getkeyname.
- type= > – Указывает тип службы. Тип по умолчанию type= own.
- start= – Указывает тип запуска для службы. Тип запуска по умолчанию start= demand.
- error= – Указывает серьезность ошибки, если служба не запускается при загрузке. Значение параметра по умолчанию error= normal.
- binpath= имя_двоичного_пути – Указывает путь в двоичном файле службы. Значение по умолчанию для параметра binpath= не задано. Эту строку необходимо указать.
- group= группа_порядка_загрузки – Указывает имя группы, членом которой является эта служба. Список групп сохраняется в реестре в подразделе HKLMSystemCurrentControlSetControlServiceGroupOrder. Значение по умолчанию является пустым.
- tag= – Указывает, следует ли получить код Tag >
Примеры команды SC CREATE
- sc \myserver create NewService binpath= c:windowssystem32NewServ.exe
- sc create NewService binpath= c:windowssystem32NewServ.exe type= share start= auto depend= «+TDI Netbios»
Мониторинг назначенных заданий Как администратору, вам, вероятно, приходится выполнять одни и те.
«>Запуск заданий в Windows по расписанию – 07/11/2012 08:52
Как завершить процессы в командной строке – TASKKILL Команда Taskkill завершает одно или.
«>TASKKILL завершение процессов в Windows – 04/07/2010 14:24
Описание команды TASKLIST Команда TASKLIST отображает список приложений и служб с кодом процесса.
Описание команды SC CONTINUE Команда SC CONTINUE служит чтобы возобновить остановленную службу и.
«>SC CONTINUE возобновление службы – 04/07/2010 14:04
Описание команды SC PAUSE Команда SC PAUSE посылает службе запрос PAUSE (пауза). А чтобы.
«>SC PAUSE пауза службы – 04/07/2010 14:01
Описание команды SC STOP Команда SC STOP посылает службе операционной системы Windows запрос.
Бывает, что имеется некий исполняемый файл, который необходимо зарегистрировать в системе как службу Windows 10. Существует множество различных способов, которые позволяют это сделать. Сейчас мы рассмотрим два основных и проверенных метода создания службы Windows.
Свойства службы Windows
Окно «Свойства» – это самая важная часть консоли управления службами Windows, в которой перечислены все элементы управления и информация о службе. Щелкните правой кнопкой мыши службу и выберите Свойства.
Вот две важные вкладки: Общие и Зависимости. Ниже приводится объяснение каждой из них:
Общие свойства службы Windows
На вкладке Общие вы увидите путь к исполняемому файлу службы и описание того, что она делает. Вы также можете выбрать «Тип запуска», чтобы настроить запуск службы.
Там вы найдете четыре типа запуска:
- Автоматически (отложенный запуск): как упоминалось ранее, службы запускаются в Windows ещё до того, как вы войдете в систему; это влияет на общее время загрузки. Если вы считаете, что вам не нужна конкретная служба немедленно, вы можете установить для неё Отложенный запуск, чтобы она запускалась после полной загрузки ПК. Это ускорит загрузку Windows.
- Автоматически: любая служба, для которой установлен автоматический запуск, сразу же запускается вместе с Windows во время загрузки.
- Вручную: если вы хотите запускать службу по запросу или только тогда, когда это требуется системе, вы можете установить для неё значение Вручную. Такая служба будет запускаться только тогда, когда используется связанное с ней приложение / функция или вы вручную запустите её. Помните, что этот параметр нарушит работу служб, которые зависят от мониторинга в реальном времени, например, службы обновления Windows / приложений.
- Отключено: как следует из названия, это отключит службу и сделает её непригодной для использования.
Зависимости служб Windows
На этой вкладке перечислены все службы, зависящие от выбранной службы, а также службы, от которых зависит текущая выбранная служба. Прежде чем возиться с опциями «Тип запуска», проверьте все службы, которые зависят от службы.
Если вы отключите службу, все службы, которые от неё зависят, могут работать некорректно; или вообще не работать.
Способ 1: открыть диспетчер служб с помощью инструментов Windows 11
В новое меню «Пуск» было полностью переработано в Windows 11, многим это нравится, но консервативные пользователи относятся к этому сдержано. Подобно экрану приложений на наших телефонах, в меню «Пуск» отображаются все установленные на компьютере приложения, и с его помощью можно легко открыть любое из них.
1. Нажмите кнопку «Пуск» или нажмите клавишу с логотипом Windows, чтобы открыть меню «Пуск».
2. В верхнем правом углу кликните элемент «Все приложения». Прокрутите список установленных приложений, чтобы найти «Инструменты Windows».
3. Кликните запись — «Инструменты Windows» и найдите в открывшемся окне «Службы», чтобы иметь возможность открыть их.
Как отключить ненужные службы
Прежде чем остановить активность конкретной программы, нужно изучить ее зависимости. Узнать такую информацию удастся из специальной консоли, на которой размещен перечень (стандартный и расширенный) всех вспомогательных приложений, работающих на ПК. Нужно лишь выбрать конкретный сервис и вызвать для него окошко «Свойства».
Как узнать о зависимых компонентах:
вызвать Панель управления (через Пуск);
отыскать и активировать «Администрирование»;
найти слово «Службы» и кликнуть по нему один раз;
появится одноименная консоль со списком (расширенным и стандартным);
- выделить конкретное приложение и кликнуть по нему;
- появится окошко со свойствами;
- отыскать вкладку «Зависимости»;
- появится два списка:
- 1) перечень компонентов, от которых зависит данная служба;
- 2) перечень компонентов, которые зависят от данного сервиса.
Отключать ненужные приложения рекомендуется для разгрузки процессора и оперативной памяти. Чаще всего деактивируют удаленный доступ к рабочему столу. По умолчанию эта функция на большинстве ПК включена. Для обеспечения безопасности персонального устройства лучше удаленный доступ к своему рабочему столу самостоятельно деактивировать.
Как отключить конкретное приложение через Панель управления:
через Пуск и Панель управления вызвать консоль «Службы»;
в списке отыскать компонент, работу которого требуется остановить;
- кликнуть один раз по этому элементу;
- всплывет окошко «Свойства»;
открыть в нем вкладку под названием «Общие»;
выставить режим «Ручной» для функции «Тип запуска»;
посмотреть «Состояние»;
если написано «работает», то нажать на кнопку «Стоп» или «Остановить»;
сохранить измененные функции.
Способ деактивации приложения через «Выполнить»:
- перейти в Пуск;
- вызвать «Выполнить»;
написать слова: msc;
- появится консоль;
- выбрать из перечня конкретное приложение;
- вызвать для него окошко «Свойства»;
- в строчке «Тип запуска» выставить функцию «Отключено»;
- «Применить» измененный параметр.
Способ деактивации из командной строки:
вызвать командную строчку на администраторских правах;
написать команду (символы): sc config “наименование компонента” start= disabled.
Способ отключения приложения через «Редактор реестра» (если в окошке «Свойства» неактивна строчка «Тип запуска»):
- предварительно запустить «Службы» и посмотреть полное наименование отключаемой программы;
- активировать «Выполнить»;
- написать символы: regedit;
- появится окно под названием «Редактор реестра»;
- перейти в самый конец: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\;
- в списке «services» отыскать программу для отключения;
- кликнуть один раз по выбранному компоненту;
- в открывшемся перечне найти параметр «Start»;
- кликнуть дважды по этому параметру;
- в окне «Изменение параметра» в строчке «Значение» выставить «4»;
нажать один раз на «ОК» и выполнить перезагрузку ПК.
Важно! При деактивации конкретной программы вначале рекомендуется убедиться, что ее отключение не повлечет изменение жизненно важных процессов на ПК. Информация о зависимых компонентах находится в окошке «Свойства» во вкладке под названием «Зависимости»
Выключение конкретного сервиса может повлиять на работу компьютера или состояние ОС.
С помощью утилиты PowerShell
Ну а с помощью такого мощного инструмента, как PowerShell можно хоть горы двигать. Он обладает большими возможностями и способен работать с различными службами. Здесь, для добавления новой службы, существует специальная команда «New -Service». Давайте попробуем новую службу, как и в прошлом примере, будем использовать те же имена и значения, только добавим дополнительный параметр, в виде описания. И так, команда, для создания нового сервиса, выглядит следующим образом:
Для изменения параметров служб, существует команда «Set -Service»:
Если не считать дополнительную возможность добавления описаний к службам, PowerShell обладает таким же функционалом, как и утилита Sc.exe. Но есть один маленький минус — здесь нет простой команды для удаления службы. Поэтому приходиться использовать такой вот, немного мудреный, код:
Какие службы не стоит выключать?
Тут все проще, почти все службы начиная с Windows Vista или 7 никак не изменились и даже 8 и 10 службы остались теми же. В общем вот список что отключать в службах не стоит:
DHCP Client (DHCP-клиент) | Обеспечивает получение компьютером от сервера параметры для работы в сети |
DNS Client (DNS-клиент) | Определяет адрес обращения к узлу по его полному имени |
Microsoft .NET Framework | Общеязыковая среда для различных приложений |
Plug-and-Play | Использование любого устройства сразу после подключения |
Windows Audio | Настраивает работу звуковых устройств |
Веб-клиент | Обеспечивает работу с веб-приложениями |
Вспомогательная служба IP | Устанавливает подключение для IP версии 6 |
Диспетчер учётных данных | Сохраняет учётные данные, применяемые пользователями при работе в интернете |
Human Interface Device Access (доступ к HID-устройствам) | Использование подключённых USB-устройств |
Windows Management Instrumentation (инструментарий управления Windows) | Определяет текущую конфигурацию компьютера |
Клиент групповой политики | Поддержка учётных записей пользователей |
Локатор удалённого вызова процедур (RPC) | Автоуправление базой данных службы имён |
Модуль запуска процессов DCOM-сервера | Позволяет загружать процессор до 100% |
Немедленные подключения Windows | Записывает настройки системы |
Shell Hardware Detection (определение оборудования оболочки) | Обеспечивает автозапуск устройств |
Перечислитель IP-шин PnP-X | Управление виртуальной сетевой шиной для подключения внешних устройств |
Питание | Управление конфигурацией питания компьютера |
Планировщик классов мультимедиа | Работает со звуком |
Протокол PNRP | Распознавание устройств, работающих в сети |
Workstation (рабочая станция) | Поддерживает различные сетевые подключения |
Расширяемый протокол проверки подлинности | получение доступа к различным сетям |
Сведения о приложении | Работает с интерактивными приложениями |
Net Logon (сетевой вход в систему) | Безопасный канал между компьютером и доменом |
Network Connections (сетевые подключения) | Обеспечивает подключение к сети |
Служба автоматического обнаружения веб-прокси WinHTTP | Поддержка автообнаружения прокси |
Служба автонастройки WLAN | Настраивает работу с беспроводными сетями |
Служба времени Windows | Синхронизация со всемирным временем |
Служба интерфейса сохранения сети | Обеспечивает бесперебойную работу сети |
Служба политики диагностики | Проверка подключённых сетей |
Служба сведений о подключённых сетях | Обобщает информацию о подключённых сетях |
Служба уведомления о системных событиях | Разрешает пользователю быть администратором системы |
Служба шлюза уровня приложения | Ядро для работы брандмауэра с интернетом |
Сопоставитель конечных точек RPC | Отслеживает входящую информацию из интернета |
Средство построения конечных точек Windows Audio | Настраивает аудиоустройства |
Узел универсальных PNP-устройств | Разрешает подключать универсальные устройства на компьютере |
Управление сертификатами и ключом работоспособности | Защищает сеть от несанкционированного доступа |
Установщик ActiveX | Полноценный просмотр страниц на сайтах и запуск онлайн-игр |
Установщик Windows | Обеспечивает установку различного программного обеспечения |
Установщик модулей Windows | Отвечает за установку, изменение или деинсталляцию обновлений |
Цветовая система Windows (WCS) | Размещены данные цветовой системы и палитры Windows |
На самом деле их можно отключить все, но тогда Windows не будет работать нормально. Все остальные службы можно выключить. Еще момент некоторые службы можно перевести в режим ручного включения. Вот список таких служб:
- WMI Performance Adapter — служба для редко встречающихся сетевых драйверов. Запускаем в ручном режиме.
- Автономные файлы — независимо работает с недоступными файлами, загруженными ранее. Запускаем в ручном режиме.
- Агент защиты сетевого доступа — контроль доступа к сети предприятия. Запускаем в ручном режиме.
- Браузер компьютера — в домашней сети служба не нужна. Запускаем в ручном режиме.
- Группировка сетевых участников — используется в домашней группе. Запускаем в ручном режиме.
- Диспетчер удостоверения сетевых участников — определение участников сети. Запускаем в ручном режиме.
- Кэш шрифтов Windows Presentation Foundation — кэширование новых шрифтов. Запускаем в ручном режиме.
- Модуль поддержки NetBIOS через TCP/IP — используется в домашней сети. Запускаем в ручном режиме.
- Изоляция ключей CNG — служба криптографии. Запускаем в ручном режиме.
- Telephony (телефония). Запускаем в ручном режиме.
- Fax Service (служба факсов). Запускаем в ручном режиме.
Создание службы с помощью программы Sc.exe
Первый способ позволяет создавать службы, используя утилиты, работающие через командную строку. В данном случае, используется инструмент sc.exe. Он позволяет взаимодействовать с функциями API и выполнять операции со службами Windows 10. Несмотря на то, что данная программа даже не обладает графическим интерфейсом, она является мощным инструментом и может контролировать состояние служб, создавать, редактировать и управлять ими. Если создавать службу, с помощью sc.exe, то не возникает необходимости в изменении параметров реестра и списка служб в диспетчере. Кроме того, утилита способна работать со службами на локальном компьютере, и выполнять те же действия на удаленных машинах. Чтобы создать новый сервис, откройте командную строку от имени администратора и запустите команду «Sc create». Она запишет новую службу к базе диспетчера служб. Синтаксис команды представлен следующим образом:
Где:
- ServiceName — данным параметром определяется имя раздела службы в реестре; Данное имя не совпадает с тем именем, которое будет отображаться диспетчере (например, в Services).
- BinPath — в этом параметре записываем путь, где хранится исполняемый файл.
Чтобы было понятнее, в качестве примера, мы создадим службу «MySevice». При этом, отображаемое имя будет «My New Service». Указываем тип службы и включаем автозапуск:
Теперь откройте оснастку «Services» и взгляните на то, что получилось:
Параметры службы, которая уже была создана и запущена, можно изменить при помощи команды Sc config. К примеру, мы заменим имя службы, которое отображается как:
А еще можно избавиться от службы полным ее удалением. Для этого используйте такую команду:
Создание службы
Для начала создайте проект и настройте значения, необходимые для правильной работы службы.
-
В Visual Studio в меню Файл последовательно выберите пункты Создать > Проект (или нажмите клавиши CTRL+SHIFT+N), чтобы открыть окно Новый проект.
-
Найдите и выберите шаблон проекта Служба Windows (.NET Framework) . Чтобы найти его, разверните узел Установленные, затем узел Visual C# или Visual Basic и выберите Рабочий стол Windows. Можно также ввести запрос Служба Windows в поле поиска в правом верхнем углу и нажать клавишу ВВОД.
Примечание
Если вы не видите здесь шаблон Служба Windows, попробуйте установить рабочую нагрузку Разработка классических приложений .NET.
В диалоговом окне Новый проект выберите ссылку Открыть установщик Visual Studio. Выберите рабочую нагрузку Разработка классических приложений .NET и нажмите кнопку Изменить.
-
В поле Имя введите MyNewService, а затем нажмите кнопку ОК.
Откроется вкладка Проект (Service1.cs или Service1.vb ).
Этот шаблон проекта содержит класс компонента с именем , наследуемый от System.ServiceProcess.ServiceBase. В нем собран основной служебный код, в том числе код для запуска службы.
Как создаются службы в Windows
Иногда требуется исполняемый файл зарегистрировать в качестве службы Windows. Имеется пара способов это сделать: Для создания и службы из командной строки можно использовать программу SC (Sc.exe). SC представляет из себя утилиту командной строки, которая реализует вызовы ко всем функциям интерфейса прикладного программирования (API) управления службами Windows. С ее помощью можно производить любые действия со службами — просматривать состояние, управлять (запускать и останавливать), изменять параметры, а также создавать новые службы.
При создании службы с помощью SC нет необходимости вручную создавать записи в реестре и затем перезагружать компьютер, чтобы обеспечить обновление базы данных диспетчером служб. Также SC позволяет указать имя удаленного компьютера, что дает возможность управлять службами как на локальном, так и на удаленном компьютере.
Для создания нового сервиса запускаем команду Sc create. Она создает запись службы в реестре и в базе данных диспетчера служб. Sc create имеет следующий синтаксис:
sc create
ServiceName — указывает имя, которое будет присвоено разделу службы в реестре. Имейте в виду, что это имя отличается от отображаемого имени службы (имени, которое отображается в оснастке «Services»); binPath — указывает путь к исполняемому файлу службы.
Для примера создадим службу MyService, укажем отображаемое имя My New Service, зададим тип службы и поставим ее на авто-запуск:
Sc create MyService binPath=C:\MyService\MyService.exe DisplayName=″My New Service″ type=own start=auto
Затем откроем оснастку «Services» и посмотрим результат.
Чем службы отличаются от программ, добавленных в автозагрузку
Это хороший вопрос, и на него можно ответить утвердительно, однако понятие «автозагрузка» часто употребляется в широком смысле слова без различия, что именно и как именно загружается. Если вы имеете общие представления о работе процессов Linux, то наверняка знакомы с такой сущностью как демон. Это процесс, но процесс несвязанный с каким-либо конкретным пользователем и работающий как-бы автономно. Службы в Windows очень похожи на этих самых демонов, они тоже независимы от пользователей. Когда вы добавляете в автозагрузку программу, пусть даже не имеющую графического интерфейса, она запускается в рабочем окружении пользователя при входе последнего в свою учетную запись, тогда как службы запускаются еще до ввода пользователем логина и пароля и напрямую с ним не взаимодействуют.
Теперь, когда вы поняли основную разницу между добавленными в автозагрузку приложениями и службами, мы научимся создавать такие службы сами и использовать их для разных целей, например, для мониторинга портов или еще чего-нибудь; главное — это найти программу или скрипт, который будет выполнять необходимое вам действие.
А еще вам понадобиться бесплатный инструмент Non-Sucking Service Manager, который «превратит» обычный процесс в службу
Название программы не очень благозвучное даже для носителя английского языка, но это не так уже и важно. Главное, что она работает
Скачать ее можно с сайта разработчика nssm.cc/download.
Создавать службу (чисто для примера) мы будем из процесса скрипта PowerShell, замеряющего среднее значения загруженности процессора и сохраняющего данные в текстовый лог.
Вот так он выглядит «изнутри».
Сначала проверим, работает ли сам скрипт. Кликаем по нему ПКМ и выбираем «Выполнить с помощью PowerShell».
Если в консоли будет выведен запрос на разрешение выполнения скриптов, вводим Y и нажимаем ввод.
Если скрипт заработал, вы увидите в консоли текст «Транскрибирование запущенно, выходной файл… и его адрес».
В результате в каталоге со скриптом у вас появится каталог «Logs» с файлом отчета в простом текстовом формате.