Event ID 1063 Service Control Manager: connect to service controller
Симптомы ошибки Event ID 1063 (Service Control Manager)
В журнале System регистрируется ошибка инициализации системной службы Event ID 1063:
The service process could not connect to the service controller. (Service: MyCustomApp / Error: 0x80070427).
Характерные признаки проблемы:
- Служба мгновенно завершается при попытке запуска с ошибкой «Не удалось запустить службу на Локальный компьютер».
- Исполняемый файл службы (
.exe) запускается при двойном клике мышью, но не работает как фоновая служба Windows. - Приложение не регистрирует свою главную точку входа диспетчера служб через системный вызов
StartServiceCtrlDispatcher. - Сбои в работе самописного ПО, микросервисов и агентов мониторинга.
Причина сбоя для разработчиков и сисадминов: Каждая программа, работающая как служба Windows, обязана в течение первых 30 секунд после старта вызвать специальную системную функцию StartServiceCtrlDispatcher(), которая связывает процесс с диспетчером SCM (services.exe). Если запустить обычный консольный EXE-файл как службу, он упадет с ошибкой Event ID 1063.
Пошаговое устранение сбоя Event ID 1063
Использование сервисной обертки (NSSM) для обычных консольных программ
Если вам нужно запустить обычный скрипт (Python, Node.js, BAT) или консольный EXE в качестве службы, используйте утилиту-обертку NSSM (Non-Sucking Service Manager):
# Установка и привязка консольного приложения через NSSM: nssm install MyService "C:\App\app.exe" nssm set MyService AppDirectory "C:\App" nssm start MyServiceПроверка пути к исполняемому файлу (ImagePath) и кавычек
Если путь к файлу службы содержит пробелы и не заключен в кавычки в реестре, система не может правильно передать аргументы:
# Проверка правильности кавычек в пути реестра: Get-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\MyService" | Select-Object ImagePathПравильный формат пути:
"C:\Program Files\My App\service.exe"(в кавычках!).Проверка прав сервисного пользователя на запуск бинарного файла
Убедитесь, что учетная запись, от имени которой стартует служба, имеет права на чтение и выполнение в целевой папке:
icacls "C:\Program Files\My App" /grant "NT SERVICE\MyService:(OI)(CI)RX"Проверка целостности системных библиотек C++ Runtime
Установите актуальные пакеты распространяемых библиотек Visual C++ Redistributable (x64 и x86), отсутствие которых часто ломает инициализацию точки входа служб.
Частые вопросы (FAQ)
Что такое StartServiceCtrlDispatcher?
Это базовая функция Win32 API, которая соединяет главный поток процесса службы с диспетчером управления службами (SCM) для приема команд пуска, останова и паузы.
Почему программа работает из консоли, но не работает как служба?
Обычные консольные программы ожидают интерактивный рабочий стол и пользовательский ввод. Служба Windows работает в изолированной Сессии 0 (Session 0 Isolation) без доступа к GUI.
Как исправить путь ImagePath без кавычек (Unquoted Service Path)?
Откройте реестр regedit, перейдите в ветку HKLM\SYSTEM\CurrentControlSet\Services\имя_службы и заключите значение параметра ImagePath в двойные кавычки.
Что делать, если антивирус блокирует исполняемый файл службы?
Проверьте журнал антивируса или Defender. Эвристический анализатор может блокировать попытку процесса зарегистрировать управляющий пайп в SCM.