Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

Event ID 7043 Windows Server, AD и Роли

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.

Полезные материалы
Рекомендуем