Служба «Журнал событий Windows» (Windows Event Log, системное имя EventLog) принимает сообщения от драйверов, приложений, подсистемы безопасности и самой операционной системы, а затем записывает их в файлы с расширением .evtx. Если её остановить, система продолжит работу, но следов происходящего не останется: новые события не фиксируются, а накопленные журналы не открываются через оснастку просмотра событий.
Управление выполняется двумя способами: через графическую оснастку services.msc и из консоли (net start, net stop, sc query, командлеты PowerShell). Обе операции требуют прав администратора. Имя службы во всех командах — EventLog, отображаемое имя в русской локализации — «Журнал событий Windows».
Сбои запуска укладываются в три основных кода: 5 (отказ в доступе), 1068 (не запущена зависимая служба) и 1067 (процесс неожиданно завершился). Причины и порядок действий для каждого разобраны ниже, вместе с настройками типового сервера и рабочей станции.
Что такое служба системных событий Windows и зачем она нужна
EventLog работает под учётной записью LocalSystem, стартует автоматически при загрузке и выступает посредником между источниками событий и файлами журналов. Источник (драйвер, служба, приложение, поставщик ETW) отправляет сообщение, служба добавляет к нему метку времени, уровень важности, код и идентификатор пользователя, после чего раскладывает запись по нужному каналу.
Каналы делятся на системные (Application, System, Security, Setup, ForwardedEvents) и прикладные, вроде Microsoft-Windows-TaskScheduler/Operational. Файлы всех каналов лежат в папке %SystemRoot%\System32\winevt\Logs.
Статус проверяется одной командой:
Get-Service -Name EventLog
Ответ Stopped означает, что события не пишутся с момента остановки. При попытке открыть eventvwr.msc в этом состоянии оснастка сообщит, что служба журнала событий Windows недоступна.
Связь службы с журналом событий Windows
Служба обслуживает и запись, и чтение. Оснастка eventvwr.msc, утилита wevtutil и командлет Get-WinEvent обращаются к журналам через API службы, поэтому при остановке EventLog они не возвращают данных. Конфигурация каналов хранится в реестре в ветке HKLM\SYSTEM\CurrentControlSet\Services\EventLog: для каждого канала там заданы максимальный размер, режим перезаписи и путь к файлу.
Метки времени берутся из системных часов, поэтому рассинхронизация узлов мешает разбору инцидентов: расхождение даже в несколько секунд усложняет поиск ошибок и сопоставление записей из журналов разных серверов. Синхронизация времени нужна для точной привязки логов и событий, работы SSL/TLS-сертификатов и систем аутентификации, согласованной работы распределённых систем и репликации данных (разбор отличий NTP и SNTP). В домене контроллеры домена обычно выступают источником времени для рядовых машин.
Последствия отключения службы для диагностики и безопасности
Остановка EventLog закрывает сразу несколько задач. Прекращается запись событий аудита, а требования стандартов вроде PCI DSS и ISO 27001 к сбору, хранению и защите логов перестают выполняться. Агенты SCOM, Zabbix и windows_exporter для Prometheus теряют источник данных и перестают формировать оповещения.
Разбор инцидента превращается в поиск вслепую. Пример: приложение упало с исключением, но записи в журнале Application нет, и вместо готовой трассировки приходится восстанавливать хронологию по временным файлам и дампам памяти.
Останавливать службу стоит только на короткое окно обслуживания, когда правятся файлы журналов или реестр. Плановое отключение на сервере, который собирает события с других узлов, ломает цепочку аудита у всей группы машин.
Как управлять службой системных событий: services.msc и командная строка
Оба способа дают одинаковый результат, различается только скорость работы и возможность автоматизации. Перед запуском любой операции убедитесь, что консоль открыта от имени администратора.
Управление через оснастку services.msc
- Нажмите Win+R, введите services.msc и подтвердите ввод.
- Примите запрос UAC, если он появился.
- Найдите в списке службу «Журнал событий Windows» (столбец «Имя службы» — EventLog).
- Двойной клик открывает свойства с вкладками «Общие», «Вход в систему», «Восстановление» и «Зависимости».
- Кнопка «Остановить» завершает службу, «Запустить» — поднимает, «Перезапустить» — выполняет оба действия подряд.
Вкладка «Зависимости» показывает два списка: компоненты, которые зависят от журнала событий, и службы, от которых зависит он сам. Перед остановкой проверьте первый список: в него попадают системные компоненты, теряющие работоспособность вместе с журналом.
Кнопка «Перезапустить» неактивна, если служба уже остановлена. В этом случае используйте «Запустить». Тип запуска меняется в том же окне: «Автоматически», «Автоматически (отложенный запуск)», «Вручную», «Отключена».
Если вы настраиваете не системную службу, а службу собственного приложения, порядок установки и параметры автозапуска разобраны в руководстве по развертыванию Windows-приложения через MSI и EXE.
Использование командной строки и PowerShell
Команды cmd:
net stop EventLog net start EventLog sc query EventLog sc config EventLog start= auto
sc query возвращает состояние службы и код выхода. Обратите внимание на пробел после start= в команде sc config, без него параметр разберётся с ошибкой. Значения для типа запуска: auto, demand (вручную), delayed-auto, disabled.
PowerShell покрывает те же операции:
Get-Service -Name EventLog Stop-Service -Name EventLog Start-Service -Name EventLog Restart-Service -Name EventLog Set-Service -Name EventLog -StartupType Automatic Get-Service EventLog | Select-Object Status, Name, DisplayName
Ключ -Force у Stop-Service останавливает вместе с журналом все зависимые службы. Несохранённые события при этом теряются, а часть приложений, пишущих в журнал, получит ошибки до следующего старта. Принудительная остановка оправдана, когда служба не реагирует на обычную команду.
Типичные ошибки запуска службы и их решение
Первичная диагностика идёт через eventvwr.msc: журнал «Система», источник Service Control Manager. События 7000, 7001, 7023 и 7024 фиксируют неудачный запуск, неудачный запуск зависимости, аварийное завершение и завершение со специфичной для службы ошибкой.
Ошибка 5: Доступ запрещён
Причина в правах: команда или оснастка запущены от обычной учётной записи. Закройте консоль, откройте cmd или PowerShell через «Запуск от имени администратора» и повторите операцию.
Если ошибка держится, проверьте членство учётной записи в группе «Администраторы» и локальные политики безопасности (secpol.msc, раздел «Локальные политики», «Назначение прав пользователей»). В домене права нередко сужают групповые политики, тогда отказ придёт и от локального администратора. Отдельный случай — служба, настроенная на запуск под сервисной учётной записью: ей нужны права на папку winevt\Logs и на ветку реестра HKLM\SYSTEM\CurrentControlSet\Services\EventLog.
Ошибка 1068: Зависимость не запущена
Код 1068 означает, что не поднялась служба из списка зависимостей. Посмотреть список позволяет команда:
sc qc EventLog
Поле DEPENDENCIES перечисляет имена, которые должны быть запущены до журнала. В цепочке компонентов событий часто задействована служба удалённого вызова процедур RPC (RpcSs), и её состояние проверяется так:
sc query RpcSs net start RpcSs
RPC критична для большого числа служб Windows, поэтому при её отказе смотрите журнал «Система» на ошибки, связанные с RPC и DCOM. Код 1075 близок по смыслу: он появляется, когда зависимость отсутствует в системе, удалена или помечена на удаление. Разница в том, что 1068 лечится запуском зависимости, а 1075 требует восстановить отсутствующий компонент.
Ошибка 1067: Процесс неожиданно завершился
Причины аварийного завершения: повреждённый файл .evtx, конфликт с антивирусом, нехватка свободного места на системном томе, испорченная конфигурация канала в реестре. Порядок действий:
- Проверьте свободное место на диске с папкой winevt\Logs. При заполнении тома служба не может создать новый файл.
- Запустите sfc /scannow, при находках повторите проверку после перезагрузки.
- При подозрении на антивирус временно исключите папку журналов из сканирования и перезапустите службу.
- Скопируйте содержимое папки winevt\Logs в резервное место, затем переименуйте повреждённый файл (System.evtx в System.evtx.old). Windows создаст новый журнал при старте службы.
- Если служба не поднимается и после этого, проверьте права на папку Logs и перезагрузите узел.
Переименование файла означает потерю текущих записей журнала. Копию стоит держать до тех пор, пока инцидент не разобран.
Настройка службы для серверов и рабочих станций
Конфигурация сводится к трём параметрам: тип запуска, максимальный размер журналов и поведение при заполнении. Все они доступны в графическом интерфейсе (свойства службы и свойства журнала в eventvwr.msc) и в реестре, когда одну конфигурацию нужно раскатать на группу машин скриптом или групповой политикой.
Рекомендации для серверных систем
Тип запуска для самого EventLog оставьте «Автоматически»: от него зависят приложения и агенты мониторинга, которые стартуют после загрузки. На «Автоматически (отложенный запуск)» переводят службы-потребители журнала (агенты мониторинга, коллекторы событий), чтобы сгладить пик обращений к диску.
Размер журналов считайте от скорости заполнения, а не от абстрактных рекомендаций. Определить темп просто: откройте свойства журнала, посмотрите текущий размер, подождите сутки и сравните. Для контроллера домена с включённым аудитом входов журнал Security вырастает на сотни мегабайт в день, поэтому 1–2 ГБ здесь норма, а 20 МБ по умолчанию обнуляются быстрее суток. Для System и Application на сервере хватает 256–512 МБ.
Политику перезаписи выбирайте по назначению журнала:
- Security: «Архивировать журнал при заполнении» или «Не перезаписывать события (очищать журнал вручную)». Записи аудита нужны для расследований, их потеря недопустима.
- System и Application: «Перезаписывать события по мере необходимости», чтобы журнал не переставал принимать новые записи.
Те же параметры задаются в реестре: ветка HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Security, значения MaxSize (DWORD, в байтах), Retention и AutoBackupLogFiles. Изменения подхватываются после перезапуска службы, в части случаев требуется перезагрузка.
Для парка серверов используйте централизованный сбор через Windows Event Forwarding: коллектор принимает события по подписке через WinRM, а журнал ForwardedEvents на сервере-коллекторе хранит сводную картину. Ветка ForwardedEvents в стандартной конфигурации пуста и заполняется только подписками.
Особенности для рабочих станций
На рабочих станциях достаточно типа запуска «Автоматически» и размеров по умолчанию: 20 МБ для Application и System и такой же объём для Security. Машинам разработчиков и тестовым стендам полезно поднять лимит до 100 МБ, потому что отладочные сборки пишут заметно больше событий.
Отключать службу на рабочей станции не стоит: часть системных компонентов и приложений не сможет записывать события, а диагностика инцидентов усложнится. Очистка журналов экономит место, но стирает историю; вместо неё настраивайте размер и ротацию.
Проверка состояния и восстановление после сбоев
Диагностика через просмотр событий
Откройте eventvwr.msc, перейдите в «Журналы Windows», затем в «Система». События источника EventLog с кодами 6005 (запуск службы), 6006 (остановка), 6008 (некорректное завершение работы) и 6013 (время работы) показывают жизненный цикл журнала, а 7000, 7001, 7023 и 7024 приходят от Service Control Manager и указывают на сбои запуска.
Список каналов и быстрый просмотр доступны из консоли:
wevtutil el
wevtutil gl System
Get-WinEvent -LogName System -MaxEvents 100
Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName='Service Control Manager'} -MaxEvents 50
При разборе инцидента на нескольких узлах проверьте синхронизацию часов: если метки времени расходятся, объединить события в общую хронологию не получится. NTP постепенно корректирует системное время, избегая резких скачков, что важно для серверных приложений и баз данных, а SNTP использует тот же механизм, но без сложной статистической обработки (сравнение NTP и SNTP).
Восстановление повреждённого журнала
Повреждённый .evtx блокирует запуск службы или мешает открыть конкретный канал. Сначала сделайте копии, потом действуйте:
- Сохраните журнал в отдельный файл: wevtutil epl System C:\backup\System.evtx
- Остановите EventLog и скопируйте всю папку winevt\Logs в резервное место.
- Переименуйте повреждённый файл, например System.evtx в System.evtx.bak, и запустите службу. Windows создаст новый пустой журнал.
- Для возврата истории скопируйте сохранённый .evtx обратно при остановленной службе и перезапустите её.
Очистка журнала командой wevtutil cl System выполняется без возможности отката, поэтому применяйте её только к тем журналам, копия которых уже лежит в резервном хранилище. На серверах с требованиями аудита такие операции стоит фиксировать в заявке на обслуживание.
Автоматизация управления службой с помощью PowerShell
Типовые проверки и перезапуск укладываются в короткий скрипт, который удобно вешать на задание планировщика:
$svc = Get-Service -Name EventLog
if ($svc.Status -ne 'Running') {
Start-Service -Name EventLog
Write-Output "EventLog запущена на $env:COMPUTERNAME"
} else {
Write-Output "EventLog работает, тип запуска: $($svc.StartType)"
}
Для парка машин операции выполняются удалённо:
Invoke-Command -ComputerName Server01 -ScriptBlock { Restart-Service -Name EventLog }
Invoke-Command -ComputerName Server01 -ScriptBlock { Get-Service EventLog }
Удалённый вызов требует настроенного WinRM (Enable-PSRemoting -Force на целевом узле), прав администратора и разрешений в брандмауэре. Проверьте, что скрипт не выполняет Set-Service -StartupType Disabled для EventLog: такая настройка переживёт перезагрузку и оставит сервер без журналов.
Перед массовым перезапуском учтите, что остановка службы на узле прерывает запись событий для всех приложений этой машины. Планируйте операции на окно обслуживания и держите под рукой проверку статуса из первого скрипта, чтобы убедиться в успехе.