Виртуальная машина с Windows Server 2022 перезагружается сама раз в несколько дней: читаем событие 1074 и находим инициатора

Что было. Несколько виртуальных машин с Windows Server 2022 перезагружаются без участия администратора: где-то каждый день, где-то раз в 3–5 дней. В журнале System событие 1074: перезагрузку инициировал процесс SystemSettingsAdminFlows.exe от имени служебной учётной записи, код причины 0x5000000 («другое, незапланированное»).

Как читать журнал перезагрузок. Три события отвечают на вопрос «кто и почему»:

  • 1074 (User32): чистая перезагрузка или выключение; в тексте указан процесс-инициатор, пользователь, тип и причина. Инициатор wuauclt/MusNotification/SystemSettingsAdminFlows означает обновления Windows; RdpSa/winlogon с пользователем означает, что кто-то нажал «Перезагрузить» в сессии; vmicshutdown или агент гипервизора означает, что команду дала площадка.
  • 6008 (EventLog): предыдущее выключение было неожиданным, инициатора нет. Вместе с 41 (Kernel-Power, критическое) означает потерю питания, зависание или жёсткий сброс виртуальной машины извне.
  • 1001 (BugCheck): был синий экран, указан код и файл дампа.

В обсуждаемом случае был 1074 с системным инициатором, то есть перезагрузка чистая и её вызвали обновления или задача обслуживания, а не сбой.

Что рекомендовали.

  1. Windows Update → Дополнительные параметры: убрать автоматическую перезагрузку при вошедших пользователях, настроить активные часы или задать окно обслуживания политикой («Не выполнять автоматическую перезагрузку при автоматической установке обновлений, если в системе работают пользователи», «Всегда автоматически перезагружаться в запланированное время»).
  2. Сверить время событий 1074 с журналом установки обновлений (Get-WinEvent -LogName Setup или история обновлений).
  3. Если инициатор не связан с обновлениями: планировщик задач (Microsoft\Windows\UpdateOrchestrator, задачи сторонних агентов), скрипты управления, средство удалённого управления площадки.
  4. sfc /scannow и проверка недавних изменений как общая гигиена.

Для виртуальной машины отдельно. Событие 41/6008 без 1074 означает, что гостя выключили снаружи: перезапуск узла, миграция, действие в панели, нехватка ресурсов на хосте. Проверить журнал действий в панели управления виртуальной машиной и, если он пуст, обратиться к поставщику с точным временем.

Скрипт для быстрой сводки.

Get-WinEvent -FilterHashtable @{LogName='System'; Id=1074,6008,41,1001} -MaxEvents 50 |
  Format-Table TimeCreated, Id, Message -Wrap

Диагностика перезагрузок описана в документации Microsoft.