Event ID 7023: Служба завершена со специфической ошибкой (Specific Error)
Архитектура завершения служб и симптомы сбоя
Событие 7023 логируется в журнале System источником Service Control Manager. Сообщение: "Служба [ИмяСлужбы] завершена из-за следующей ошибки: [Специфический код ошибки]". В отличие от >7034 (где процесс службы аварийно падает/крашится), событие 7023 означает, что служба корректно завершила свою работу сама, вернув диспетчеру SCM конкретный код внутренней ошибки (например, ошибка инициализации, конфликт порта или отсутствие лицензии).
Таблица распространенных кодов завершения в событии 7023
| Код Win32 / HRESULT | Текст ошибки | Причина |
|---|---|---|
%%10048 (0x2740) | WSAEADDRINUSE | Порт, необходимый службе, уже занят другим процессом. |
%%2 | ERROR_FILE_NOT_FOUND | Служба не нашла свой файл конфигурации или базу данных. |
%%5 | ERROR_ACCESS_DENIED | Недостаточно прав в реестре или на файловую систему. |
%%1067 | ERROR_PROCESS_ABORTED | Внутренний сбой логики инициализации процесса службы. |
Пошаговое дерево решений по кодам завершения
Сценарий 1: Устранение конфликта портов (%%10048)
Если служба завершается с ошибкой 10048, найдите процесс, занявший требуемый сетевой порт:
# Поиск PID процесса, занявшего порт (например, порт 80)
netstat -ano | findstr :80
# Определение имени программы по найденному PID
Get-Process -Id НОМЕР_PIDСценарий 2: Восстановление прав доступа к ветке параметров (%%5)
- Откройте
regedit. - Перейдите в
HKLM\SYSTEM\CurrentControlSet\Services\ИмяСбойнойСлужбы\Parameters. - Убедитесь, что сервисная учетная запись службы имеет права Чтение (Read) на эту ветку.
Типовые ошибки администраторов
- Попытка настроить бесконечный автоперезапуск: Если служба завершается по 7023 из-за занятого порта, цикличный перезапуск приведет только к бессмысленной нагрузке на процессор. Сначала устраните первопричину.
Траблшутинг системных сервисов Windows требует анализа стека вызовов. Передайте сервера на системный аутсорсинг нам: найдем конфликты портов, вылечим конфигурации и обеспечим стабильность 24/7.
Частые вопросы (FAQ)
Чем 7023 отличается от 7000?
7000 фиксирует ошибку на этапе попытки старта службы (SCM не смог запустить .exe). 7023 фиксирует, что процесс запустился, выполнил внутреннюю инициализацию, встретил ошибку и сам завершил работу.
Как перевести код вида %%10048 в понятный текст?
Символы %% означают системное сообщение Windows. Число 10048 — это стандартный код Win32 сокета (WSAEADDRINUSE — адрес уже используется).
Где искать дополнительные подробности о сбое службы?
Проверьте собственный журнал приложения в Event Viewer (Applications and Services Logs) или текстовые логи в каталоге установки программы.
Поможет ли изменение учетной записи запуска службы?
Если код ошибки %%5 (Access Denied) — да, смена учетной записи на Local System или выдача необходимых прав исправит проблему.