· 14 мин чтения

Аудит перезагрузок Windows Server: находим виновника за 10 минут

Меня зовут Семёнов Евгений, директор АйТи Фреш. За 15+ лет практики самый частый утренний звонок звучит так: «У нас ночью перезагрузился 1С-сервер, почему — неизвестно». Я всегда отвечаю одинаково: это решается штатными инструментами Windows за 10 минут, если знать, куда смотреть. В этой статье — полный чек-лист поиска причин внеплановых ребутов Windows Server, от событий User32 до дампов BSOD.

Последовательность действий при утреннем ребуте

Я никогда не начинаю с перезапуска сервисов. Сначала — фиксирую картину:

  1. Точное время последнего старта системы: Get-CimInstance Win32_OperatingSystem | Select LastBootUpTime.
  2. Список перезагрузок за неделю из System-лога.
  3. Предшествующие ошибки (10–30 минут до ребута) — Application и System.
  4. Проверка на наличие MEMORY.DMP и мини-дампов в C:\Windows\Minidump.
  5. Проверка Windows Update history и запланированных задач.

Ключевые события в System-логе

IDИсточникСмысл
6005EventLogЗапуск службы журнала — начало загрузки
6006EventLogОстановка журнала — корректное завершение
6008EventLogПредыдущее завершение было некорректным
6013EventLogUptime системы за прошедший период
1074User32Кто и каким процессом инициировал ребут
1076User32Первый вход после некорректного завершения
41Kernel-PowerСистема загрузилась без штатного shutdown
109Kernel-GeneralНачало последовательности выключения

Быстрый сбор истории PowerShell-ом

# Последние 20 перезагрузок
Get-WinEvent -FilterHashtable @{LogName='System'; ID=1074,6005,6006,6008,41} -MaxEvents 40 |
  Select-Object TimeCreated, Id, ProviderName, Message |
  Format-Table -AutoSize

# Кто нажал ребут за последние 7 дней
Get-WinEvent -FilterHashtable @{LogName='System'; ID=1074; StartTime=(Get-Date).AddDays(-7)} |
  ForEach-Object {
    [PSCustomObject]@{
      Time = $_.TimeCreated
      User = $_.Properties[6].Value
      Reason = $_.Properties[2].Value
      Process = $_.Properties[0].Value
    }
  } | Format-Table -AutoSize

Этот скрипт я держу в Run-папке на всех админских ноутбуках. Даёт картину «кто, когда и зачем» за 5 секунд.

Event 1074 — самая информативная запись

В описании события есть поля: Process Name, Username, Reason, Reason Code, Shutdown Type. По Reason Code понимаешь причину сразу:

Если Username = NT AUTHORITY\SYSTEM и Process Name = C:\Windows\System32\svchost.exe с Reason «Operating System: Service pack» — почти наверняка это WU. Если USERNAME = ваш admin и Reason «Other (Planned)» — человеческий фактор.

Reliability Monitor — визуальный обзор

У нас на практике админы забывают про Reliability Monitor, а зря. Запускается через perfmon /rel. Даёт временную шкалу со всеми критическими событиями, установками ПО, ошибками и ребутами. Идеально, когда нужно показать руководству «вот тут поставили патч, вот тут начались падения».

Дампы памяти при BSOD

Если ребут был по BSOD, в C:\Windows\Minidump лежит .dmp-файл. Для быстрого анализа — WinDbg или старенький, но работающий BlueScreenView от NirSoft. Минимум — смотрим Bug Check Code:

# Windows Debugging Tools
!analyze -v

# Типовые коды
# 0x0000003B SYSTEM_SERVICE_EXCEPTION — драйвер
# 0x0000007E SYSTEM_THREAD_EXCEPTION_NOT_HANDLED — обычно драйвер/антивирус
# 0x00000133 DPC_WATCHDOG_VIOLATION — диск/контроллер SSD
# 0x0000009F DRIVER_POWER_STATE_FAILURE — сон/гибернация

Мини-кейс: 1С-сервер ночью уходит

Апрель 2026. Клиент — производство, 45 юзеров. Терминальный сервер 1С с еженедельным ночным ребутом между 3:30 и 4:15. Админы списывали на WU, но ребуты приходили даже в выходные.

За час я прошёл по журналам: Event 1074 с User=NT AUTHORITY\SYSTEM, Reason Code 0x80020002. Но Windows Update показывал установку патчей только раз в месяц. Дальше — Task Scheduler. Нашёл задачу «Перезагрузка для обслуживания», созданную прежним админом в 2023 году с триггером «каждую пятницу 3:30» и условием «только если система простаивает». Проблема в том, что «простой» определялся по CPU, а ночью 1С-агент делал регламентные задания с 3 до 6, и задача пропускалась. Но если регламент заканчивался до 3:30 — ребут проходил, а если задерживался — съезжал. Задачу отключил, расписали плановое обслуживание на субботу с уведомлением.

Shutdown Event Tracker для чётких причин

Я всегда включаю Shutdown Event Tracker на критичных серверах. При любом shutdown/restart админу предлагается диалог «Укажите причину», без заполнения команда не проходит. Включается через GPO:

Computer Configuration → Administrative Templates → System → Display Shutdown Event Tracker = Enabled, Option = Always. Плюс политика «Do not display Shutdown Event Tracker System State Data feature» — по умолчанию Disabled.

Контроль Windows Update-ребутов

Половина внеплановых ребутов — это WU с Active Hours 00:00–00:00 или без согласованного окна. Настраивается через GPO:

На серверах мы всегда применяем третий вариант. Не автомат, не сюрприз.

Мониторинг uptime через PRTG/Zabbix

Реактивный поиск — хорошо, проактивный — лучше. Я всегда настраиваю алерт на «uptime меньше 20 минут» и «ребут без Event 1074 за последние 10 минут». Получил уведомление — зашёл по RDP и сразу собрал логи, пока данные свежие.

# Zabbix агент item
UserParameter=windows.lastbootup,powershell -Command "(Get-CimInstance Win32_OperatingSystem).LastBootUpTime.ToString('s')"
UserParameter=windows.bootcount,powershell -Command "(Get-EventLog -LogName System -Source 'EventLog' -After (Get-Date).AddDays(-7) | Where {$_.EventID -eq 6005}).Count"

Физический уровень: питание и железо

Event 41 без предшествующих 1074 и без дампа = у вас что-то аппаратное. За 15+ лет я видел четыре типовых случая:

Всегда смотрите iDRAC/iLO/IPMI логи. Железо пишет туда больше, чем Windows в System.

Разберём причины ребутов вашего сервера

Приеду или подключусь удалённо, соберу логи, найду источник внеплановых перезагрузок, настрою мониторинг uptime и контроль Windows Update. Типовой аудит — 2–4 часа. Работаю с Windows Server с 2008-го.

Телефон: +7 903 729-62-41
Telegram: @ITfresh_Boss
Семёнов Евгений Сергеевич, директор АйТи Фреш

FAQ — частые вопросы

Где смотреть причину перезагрузки Windows Server?
Event Viewer → System, события 1074, 6005, 6006, 6008, 41, 109 и Reliability Monitor.
Что означает Event 41 Kernel-Power?
Система загрузилась после некорректного завершения — питание, BSOD без дампа, аппаратный сбой.
Как узнать, кто нажал Shutdown?
Event 1074 из User32 с именем пользователя и процессом, плюс Shutdown Event Tracker.
Где найти логи Windows Update-ребутов?
Microsoft-Windows-WindowsUpdateClient/Operational, события 19, 43, 44 и 1074 с SYSTEM+WU.
Что такое Shutdown Event Tracker?
Диалог при shutdown/reboot, обязывающий указать причину, данные уходят в Event 1074.

Подпишитесь на рассылку ITfresh

Раз в неделю — практические гайды для руководителя IT и сисадмина: безопасность, 1С, миграции, резервные копии, лайфхаки из реальных проектов.

Реквизиты оператора персональных данных

ООО «АЙТИ-ФРЕШ», ИНН 7719418495, КПП 771901001. Юридический адрес: 105523, г. Москва, Щёлковское шоссе, д. 92, корп. 7. Контакт: info@itfresh.ru, +7 903 729-62-41. Оператор обрабатывает e-mail подписчика в целях рассылки информационных и рекламных материалов до момента отзыва согласия.