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

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

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

Event ID 7043: служба не завершилась корректно при выключении системы

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

Симптомы сбоя выключения службы (Event ID 7043)

В журнале System фиксируется ошибка: Event ID 7043: The [Имя_службы] service did not shut down properly after receiving a preshutdown control. При выключении или перезагрузке сервера служба проигнорировала сигнал SERVICE_CONTROL_PRESHUTDOWN или не успела завершить сохранение данных в отведенный таймаут.

СимптомПоследствия
Долгое выключение сервераЭкран «Завершение работы служб» висит по 10–20 минут
Повреждение несохраненных данныхСлужба принудительно убивается ядром по истечении системного таймаута
Сбои баз данных при стартеНеобходимость выполнения долгой процедуры Recovery/Replay журналов транзакций

Пошаговое устранение зависания служб при выключении (Event ID 7043)

  1. Увеличьте таймаут предварительного завершения работы (PreshutdownTimeout): службам баз данных требуется время на сброс грязных страниц из памяти на диск:
# Увеличение таймаута PreshutdownTimeout для службы до 3 минут (180000 мс):
$serviceName = "ИмяСлужбы"
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\$serviceName" -Name "PreshutdownTimeout" -Value 180000 -Type DWord -Force
  1. Уменьшите глобальный таймер принудительного убийства зависших служб (WaitToKillServiceTimeout):
# Установка времени ожидания закрытия зависших служб в 15 секунд (по умолчанию 5000-20000 мс):
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control" -Name "WaitToKillServiceTimeout" -Value "15000" -Type String -Force
  1. Проверьте дисковые задержки при выключении: если сервер выключается медленно, проверьте дисковую подсистему на наличие очередей записи (Disk Queue Length) во время создания контрольных точек.

Совет: Перед плановой перезагрузкой высоконагруженных серверов баз данных (MS SQL, Oracle, PostgreSQL, Exchange) останавливайте службы вручную через PowerShell — это исключит каскадные таймауты SCM.

Практический опыт инженера: Event 7043 часто возникает на виртуальных машинах при централизованном выключении хоста гипервизора. Увеличение PreshutdownTimeout на SQL-серверах полностью предотвращает повреждение баз данных.

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

Что такое сигнал Preshutdown в Windows?

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

Почему служба зависает именно при выключении?

Служба может ожидать ответа от сети или удаленного сервера, который в процессе shutdown уже был отключен ранее по цепочке приоритетов.

Где находится глобальный параметр WaitToKillServiceTimeout?

В ветке реестра: HKLM:\SYSTEM\CurrentControlSet\Control.

Как безопасно остановить службы SQL перед перезагрузкой скриптом?

Выполните команду: Stop-Service -Name MSSQLSERVER -Force перед выполнением Restart-Computer.