Как я могу легко просмотреть историю каждого перезапуска или выключения моего Windows Server и причину, в том числе инициированную пользователем, инициированную системой и сбой системы?
Журнал событий Windows - очевидный ответ, но каков полный список событий, которые мне следует просмотреть?
Я нашел эти сообщения, которые частично отвечают на мой вопрос:
но они не охватывают каждый сценарий AFAIK, и информацию трудно понять, потому что она распределена по нескольким ответам.
У меня есть несколько версий Windows Server, поэтому решение, которое работает как минимум с версиями 2008, 2008 R2, 2012 и 2012 R2, было бы идеальным.
Самый ясный и краткий ответ, который я смог найти:
в котором перечислены эти идентификаторы событий для отслеживания (цитируются, но отредактированы и переформатированы из статьи):
Добавьте к этому еще пару из ответов о сбоях сервера, перечисленных в моем OP:
Я что-то пропустил?
Опираясь на @JohnC ответ и расширение его
Вы можете использовать XML-фильтр, например:
<QueryList>
<Query Id="0" Path="System">
<Select Path="Security">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Setup">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='eventlog' or @Name='Microsoft-Windows-Eventlog'] and (EventID=1074 or EventID=1076 or EventID=6005 or EventID=6006 or EventID=6008) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Thermal-Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='User32'] and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WER-SystemErrorReporting'] and TimeCreated[timediff(@SystemTime) <= 172800000]]]</Select>
</Query>
</QueryList>
Вы можете заменить 172800000 следующими значениями для временного диапазона:
86400000 - Последние 24 часа
172800000 - Последние 2 дня
604800000 - Последние 7 дней
Это покажет гораздо больше деталей с того времени, когда сервер / компьютер отключился. Он включает в себя события Kernel-Power, User32 и EventLog.
Я бы просто оставил это как комментарий, поскольку JohnC в основном охватил все, но мне пока не разрешено это делать.
Описанные им события используются довольно давно, поэтому они будут работать для любой из упомянутых вами ОС, а также для их настольных собратьев. Страницы идентификаторов событий, на которые он ссылался, например, для 6006 в TechNet упомяните Windows Server 2003.
Если было элегантное завершение работы, инициированное пользователем или иным образом, вы также должны увидеть некоторые Код события 7036 сообщая вам, что различные службы «вошли в остановленное состояние». Когда машина снова запустится, вы увидите больше 7036, сообщающих, что службы переходят в рабочее состояние.
Я предпочитаю выполнять действия из командной строки. Вот начало фрагмента, который вы можете использовать. Это показывает последние 30 000 системных записей и возвращает перезагрузки в этих записях.
Get-EventLog -LogName System -Newest 30000 | Where-Object {$_.EventID -eq 6005}
Поворачивая @ user10082 комментарий в ответ. Предлагаемое решение представляет собой однострочный скрипт Powershell:
Get-EventLog -LogName System |? {$_.EventID -in (6005,6006,6008,6009,1074,1076)} | ft TimeGenerated,EventId,Message -AutoSize –wrap