Иногда вам нужно, чтобы приложение или скрипт продолжали работать независимо от того, вошли вы в свой компьютер или нет. Возможно, это Скрипт PowerShell для мониторинга портов или веб-сервер, на котором размещена страница в вашей домашней сети.
Дело в том, что если вы хотите, чтобы процесс, сценарий или программа выполнялись, пока компьютер включен, вам необходимо создать Служба Windows.
Что мне нужно для создания службы Windows?
Чтобы создать службу Windows в Windows 10, необходимо выполнить несколько предварительных условий:
Что такое плохой менеджер по обслуживанию?
Да, такое имя нельзя назвать, не объяснив его. Конечно, название неудачное, но оно точное. Non-Sucking Service Manager (NSSM), пожалуй, самый простой способ создать высоконадежную и настраиваемую службу Windows. Кроме того, это бесплатно и Программное обеспечение с открытым исходным кодом (OSS).
NSSM можно использовать через Командная строка Windows или графический интерфейс пользователя (GUI). Это означает, что любой может использовать его. NSSM можно использовать в любой версии Windows, начиная с Windows 2000 включительно. Существует 32-битная и 64-битная версий. Если вы используете 64-битный компьютер, сначала попробуйте эту версию. Если это не сработает, вернитесь к 32-битной версии.
Вы можете скачать NSSM с сайта, клонировать NSSM из Git или установить NSSM с Chocolatey. Chocolatey — менеджер пакетов для Windows.. Способы установки будут различаться в зависимости от того, какой маршрут вы выберете. Пожалуйста, ознакомьтесь с инструкциями NSSM. В нашем примере мы загружаем NSSM с веб-сайта и устанавливаем его в C:\WINDOWS\system32 .
Создание службы Windows с помощью NSSM
В этом примере мы создадим сервис из PowerShell-скрипт для регистрации Средний процент загрузки процессора.
Примечание . Все строки ниже, за которыми следует символ #, являются комментариями и не влияют на скрипт..
CLS #Optional. I like to use this to clear the terminal when testing.#Make sure you have a folder called Logs in the same directory as this script #The log is where the records will be stored. Start-Transcript -Path "$PSScriptRoot\Logs\log-CPULoadPercentage-$(get-date -f yyyy-MM-dd).txt" -Append #While loop keeps it running until manually stopped While ($True){ #Creates a timestamp to know when the measurement was taken $timeStamp = get-date -f yyyy-MM-h:mm:ss #Gets the average load percentage at that time, then waits 5 seconds to do it again. $cpuLoadPercent = Get-CimInstance win32_processor | Measure-Object -Property LoadPercentage -Average | Select-Object Average;Start-Sleep -Seconds 5 #Isolates just the average so there isn't a weird @{Average=13} string $cpuLoadPercent = $cpuLoadPercent.Average #writes results to screen, or in this case to the log Write-Host "$timeStamp CPU Load Percentage $cpuLoadPercent" } Stop-Transcript
Существует несколько других вкладок, которые можно использовать для настройки службы. Для этого упражнения значений по умолчанию на этих вкладках достаточно. Нажмите кнопку Установить службу ..
<ол старт="8">nssm-check-log.png
Удаление службы Windows с помощью NSSM
Возможно, вам больше не нужно загружать следить за своим процессором, и вы захотите избавиться от этой службы. К счастью, NSSM упрощает эту задачу.
Вот и все. Рекомендуется проверить диспетчер служб, чтобы убедиться, что службы больше нет. Если вы по-прежнему видите службу, возможно, вам придется обновить экран, и она должна исчезнуть.
Сервисы — отличный способ запускать приложения или сценарии, которые должны выполняться постоянно, перезапускаться в случае сбоя или нуждаться в привилегиях, отличных от полномочий текущего пользователя. Если вам не нужно, чтобы ваше приложение или скрипт выполнял все эти функции, рассмотрите вариант использование запланированной задачи..
.