Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

Event ID 7022: Служба зависла при запуске (Service hung on startup)

Обновлено: 15.08.2026  ·  Официальная база знаний

Архитектура старта служб и зависания (Deadlock)

Событие 7022 логируется в журнале System источником Service Control Manager (SCM). Сообщение гласит: «Служба [ИмяСлужбы] зависла при запуске (hung on startup)». Это одно из самых неприятных событий при загрузке (Boot) Windows Server.
В отличие от >7009 (Таймаут подключения), где служба просто не успела загрузиться за 30 секунд, событие 7022 означает глубокое программное зависание (Deadlock) процесса. Служба отрапортовала ядру "Я запускаюсь..." и застряла навсегда. Симптомы: сервер грузится бесконечно долго (висит на экране 'Применение параметров компьютера'), а после входа оснастка services.msc показывает, что служба зависла в сером статусе «Запуск... (Starting)».

Частые виновники 7022

  • NlaSvc (Network Location Awareness): Зависает в ожидании ответа от DNS или AD.
  • WsusService: Повреждение базы WID.
  • Antivirus / EDR Agents: Блокировка чтения системных файлов при старте ОС.

Пошаговое дерево решений (Разблокировка загрузки)

Сценарий 1: Убийство зависшего процесса (Hard Kill)

Если служба зависла в статусе "Запуск...", вы не сможете нажать кнопку "Остановить" (она серая). Вам нужно жестко убить процесс на уровне ядра.

  1. Откройте командную строку (CMD) от имени Администратора.
  2. Узнайте PID зависшей службы (например, WsusService):
    sc queryex WsusService
  3. Найдите в выводе строку PID : 4052 (цифры будут другие).
  4. Убейте процесс (Force Kill):
    taskkill /PID 4052 /F

Служба перейдет в статус "Остановлена", и вы сможете разбираться с ее логами или базой данных без перезагрузки всего сервера.

Сценарий 2: Перевод в Отложенный запуск (Delayed Start)

Если служба (например, 1С Сервер или SQL) пытается стартовать до того, как сетевые интерфейсы получили IP-адреса, она зависнет. Переведите Тип запуска (Startup Type) в Автоматически (Отложенный запуск). Это даст ОС время на инициализацию всей инфраструктуры (сеть, диски), а проблемная служба запустится через 2 минуты после старта.

Сценарий 3: Анализ блокировок файлов (ProcMon)

Если 7022 не уходит, значит процесс блокируется сторонним софтом.

  1. Скачайте Process Monitor (Sysinternals). Включите опцию Enable Boot Logging. Перезагрузите сервер.
  2. После загрузки откройте лог и найдите .exe файл вашей службы.
  3. Ищите результаты SHARING_VIOLATION. Вы увидите, что антивирус (например, avp.exe) заблокировал файл конфигурации службы, из-за чего она ушла в вечный таймаут. Добавьте пути службы в Exclusions.

Типовые ошибки администраторов

  • Увеличение ServicesPipeTimeout: Увеличение системного таймаута в реестре (как это делают при 7009) здесь не поможет! Служба УЖЕ в состоянии Deadlock, она не "медленно грузится", она намертво висит. Увеличение таймаута только заставит ваш сервер висеть на экране загрузки не 1 минуту, а 5 минут.
Сервер грузится часами, а критичные службы приходится стартовать вручную (Kill & Start)?
Зависающие сервисы (Deadlocks) — индикатор глубоких программных конфликтов ОС или деградации СХД. Возьмем серверы на абонентское обслуживание: проведем анализ загрузки (Windows Performance Analyzer), вычистим кривые драйверы, оптимизируем базы данных и восстановим мгновенную загрузку (Boot Time).
Практический опыт инженера: Ошибка 7022 для службы `LanmanServer` (Служба сервера SMB) часто возникает при подключении к серверу огромных массивов дисков (iSCSI MPIO или Storage Spaces). Служба пытается проиндексировать все доступные шары (Shares) при загрузке. Если диски 'просыпаются' медленно (Spin-up time), служба зависает. Перевод LanmanServer в 'Delayed Start' решает проблему недоступности файлового сервера при ребутах.

Частые вопросы (FAQ)

Почему 7022 появляется после установки обновлений Windows (WSUS)?

Обновления (TiWorker / TrustedInstaller) могут блокировать кусты реестра или системные DLL для их замены при старте. Если ваша служба пытается прочитать заблокированный куст HKLM, она 'виснет' в ожидании (Lock Wait). Обычно лечится просто второй перезагрузкой сервера.

Что означает статус 'Stopping' (Остановка...)?

То же самое, что и 'Starting'. Процесс завис на этапе выгрузки из памяти (часто из-за того, что не может закрыть сетевой сокет или сбросить кэш на диск). Лечится так же — через 'sc queryex' и 'taskkill /F'.

Может ли сбой DNS вызвать 7022?

Да. Если служба (например, Exchange IS) в момент старта пытается разрешить имя контроллера домена, а сеть недоступна, DNS-запрос уйдет в таймаут (который может длиться минуты), блокируя старт самой службы.

Поможет ли переустановка зависшего софта?

Если бинарный файл поврежден или несовместим с версией .NET Framework (для C# служб), переустановка полностью решит проблему. Всегда проверяйте журнал Application на наличие ошибок .NET Runtime в момент старта.

Как запустить службу в безопасном режиме (Safe Mode)?

По умолчанию Windows блокирует старт несистемных служб в Safe Mode. Если вам нужно запустить зависающую службу для диагностики, используйте ключ реестра 'HKLM\SYSTEM\CurrentControlSet\Control\SafeBoot\Network' и создайте там раздел с именем службы.