Что было. Несколько виртуальных машин с 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 с системным инициатором, то есть перезагрузка чистая и её вызвали обновления или задача обслуживания, а не сбой.
Что рекомендовали.
- Windows Update → Дополнительные параметры: убрать автоматическую перезагрузку при вошедших пользователях, настроить активные часы или задать окно обслуживания политикой («Не выполнять автоматическую перезагрузку при автоматической установке обновлений, если в системе работают пользователи», «Всегда автоматически перезагружаться в запланированное время»).
- Сверить время событий 1074 с журналом установки обновлений (
Get-WinEvent -LogName Setupили история обновлений). - Если инициатор не связан с обновлениями: планировщик задач (
Microsoft\Windows\UpdateOrchestrator, задачи сторонних агентов), скрипты управления, средство удалённого управления площадки. sfc /scannowи проверка недавних изменений как общая гигиена.
Для виртуальной машины отдельно. Событие 41/6008 без 1074 означает, что гостя выключили снаружи: перезапуск узла, миграция, действие в панели, нехватка ресурсов на хосте. Проверить журнал действий в панели управления виртуальной машиной и, если он пуст, обратиться к поставщику с точным временем.
Скрипт для быстрой сводки.
Get-WinEvent -FilterHashtable @{LogName='System'; Id=1074,6008,41,1001} -MaxEvents 50 |
Format-Table TimeCreated, Id, Message -Wrap
Диагностика перезагрузок описана в документации Microsoft.