Преобразование сценария PowerShell в службу Windows (от ps1 до службы)

Как хорошо известно, PowerShell отлично работает в сфере администрирования. Однако бывают случаи, когда необходимо запустить ps1-скрипт в качестве службы. Поскольку PowerShell изначально создавался как инструмент для автоматизации и управления системами, он не может работать в режиме службы нативно (PowerShell в службу).

Это ограничение может вызывать разочарование, когда вам нужен фоновый скрипт мониторинга, задача автоматической очистки или любой длительный процесс PowerShell на Windows Server 2025 — особенно в производственных средах, где от служб ожидается автоматический запуск и продолжение работы после выхода пользователей из системы.

К счастью, эту проблему можно решить с помощью сторонних инструментов, которые позволяют запускать любой исполняемый файл (или скрипт) в качестве службы Windows.


Инструменты для запуска EXE-файлов как служб Windows

Существует множество утилит, способных преобразовать исполняемый файл в службу Windows, включая:

В этой статье мы будем использовать EXE Service, так как он уже предоставляет готовый пример конфигурации для PowerShell и поддерживает как графический интерфейс, так и командную строку.


Запуск сценария PowerShell в качестве службы Windows

Шаг 1: Откройте EXE Service

После установки EXE Service на рабочем столе появится ярлык.

Графический интерфейс предназначен только для упрощения создания службы.
Если вы работаете на Windows Server без графического интерфейса, у вас есть два варианта:


Шаг 2: Создайте новую службу

EXE Service уже включает готовый пример преобразования PowerShell в службу.

Просто нажмите кнопку «Создать из примера».

Преобразование PowerShell в службу


Шаг 3: Настройте путь к вашему .ps1 файлу

В появившемся окне необходимо указать правильные пути:

Убедитесь, что пути соответствуют фактической установке PowerShell и расположению вашего скрипта.

Конфигурация PowerShell в службу


Шаг 4: Сохраните и запустите службу

Нажмите «Создать службу», чтобы создать службу Windows.

Если вы хотите, чтобы служба запустилась немедленно на этом компьютере, нажмите «Запустить».

После этого ваш сценарий PowerShell будет:


Перенос службы на другой сервер

Если вы планируете перенести конфигурацию службы на другой Windows Server, следуйте официальным инструкциям по переносу EXE Service, приведённым в их документации.

Этот подход особенно полезен при развёртывании идентичных конфигураций на нескольких серверах.


Заключение

PowerShell не создавался как служба — но такие инструменты, как EXE Service, аккуратно решают эту проблему. Оберните ваш .ps1-скрипт, и он будет запускаться при старте системы, переживать выход пользователей и бесшовно интегрироваться с services.msc. Никаких грязных обходных путей, никаких хаков с планировщиком задач. Просто прямое, готовое для администратора решение.


Скачайте EXE_Service.msi и превратите любой .exe в службу Windows за секунды.