Преобразование сценария PowerShell в службу Windows (от ps1 до службы)
Как хорошо известно, PowerShell отлично работает в сфере администрирования. Однако бывают случаи, когда необходимо запустить ps1-скрипт в качестве службы. Поскольку PowerShell изначально создавался как инструмент для автоматизации и управления системами, он не может работать в режиме службы нативно (PowerShell в службу).
Это ограничение может вызывать разочарование, когда вам нужен фоновый скрипт мониторинга, задача автоматической очистки или любой длительный процесс PowerShell на Windows Server 2025 — особенно в производственных средах, где от служб ожидается автоматический запуск и продолжение работы после выхода пользователей из системы.
К счастью, эту проблему можно решить с помощью сторонних инструментов, которые позволяют запускать любой исполняемый файл (или скрипт) в качестве службы Windows.
Инструменты для запуска EXE-файлов как служб Windows
Существует множество утилит, способных преобразовать исполняемый файл в службу Windows, включая:
- AlwaysUp
- NSSM (Non-Sucking Service Manager)
- WinSW
- SrvStart
- EXE Service
В этой статье мы будем использовать EXE Service, так как он уже предоставляет готовый пример конфигурации для PowerShell и поддерживает как графический интерфейс, так и командную строку.
Запуск сценария PowerShell в качестве службы Windows
Шаг 1: Откройте EXE Service
После установки EXE Service на рабочем столе появится ярлык.
Графический интерфейс предназначен только для упрощения создания службы.
Если вы работаете на Windows Server без графического интерфейса, у вас есть два варианта:
- Создать службу на обычном ПК, а затем перенести её на сервер
- Запустить EXE Service непосредственно на сервере с помощью командной строки
Шаг 2: Создайте новую службу
EXE Service уже включает готовый пример преобразования PowerShell в службу.
Просто нажмите кнопку «Создать из примера».

Шаг 3: Настройте путь к вашему .ps1 файлу
В появившемся окне необходимо указать правильные пути:
- Путь к исполняемому файлу:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe - Рабочий каталог:
Укажите папку, в которой находится ваш файл скрипта - Аргументы:
-ExecutionPolicy Bypass -File "C:\Путь\К\Вашему\Скрипту.ps1"
Убедитесь, что пути соответствуют фактической установке PowerShell и расположению вашего скрипта.

Шаг 4: Сохраните и запустите службу
Нажмите «Создать службу», чтобы создать службу Windows.
Если вы хотите, чтобы служба запустилась немедленно на этом компьютере, нажмите «Запустить».
После этого ваш сценарий PowerShell будет:
- Запускаться как служба Windows
- Автоматически стартовать с системой
- Продолжать работу после выхода пользователей из системы и смены сеансов
- Управляться через диспетчер служб Windows (
services.msc)
Перенос службы на другой сервер
Если вы планируете перенести конфигурацию службы на другой Windows Server, следуйте официальным инструкциям по переносу EXE Service, приведённым в их документации.
Этот подход особенно полезен при развёртывании идентичных конфигураций на нескольких серверах.
Заключение
PowerShell не создавался как служба — но такие инструменты, как EXE Service, аккуратно решают эту проблему. Оберните ваш .ps1-скрипт, и он будет запускаться при старте системы, переживать выход пользователей и бесшовно интегрироваться с services.msc. Никаких грязных обходных путей, никаких хаков с планировщиком задач. Просто прямое, готовое для администратора решение.