Histórico de reinicialização / desligamento do Windows Server

87

Como posso ver facilmente um histórico de cada vez que meu Windows Server é reiniciado ou desligado e o motivo pelo qual, incluindo iniciado pelo usuário, iniciado pelo sistema e travado?

O Log de Eventos do Windows é uma resposta óbvia, mas qual é a lista completa de eventos que devo exibir?

Encontrei esses posts que respondem parcialmente à minha pergunta:

mas elas não abrangem todos os cenários do AFAIK e as informações são difíceis de entender porque estão espalhadas por várias respostas.

Eu tenho várias versões do Windows Server, portanto uma solução que funcione para pelo menos as versões 2008, 2008 R2, 2012 e 2012 R2 seria o ideal.

JohnC
fonte
11
Em algumas situações, o TurnedOnTimesView do Nirsoft pode ser bom o suficiente. ( nirsoft.net/utils/computer_turned_on_times.html ) mostra os tempos de reinicialização e desligamento.
Peter Hahndorf
Você usa uma ferramenta de monitoramento externo, .eg, opsview, nagios, icinga, shinken? Essas ferramentas armazenam os resultados do monitoramento em um banco de dados e você pode verificar se os servidores foram reiniciados e quando,
030/01/01

Respostas:

100

A resposta mais clara e sucinta que pude encontrar é:

que lista esses IDs de eventos a serem monitorados (citados, mas editados e reformatados do artigo):

Acrescente a isso mais algumas respostas das falhas de servidor listadas no meu OP:

  • Identificação do evento 1074 ( alternativa ): "O processo X iniciou a reinicialização / desligamento do computador em nome do usuário Y pelo seguinte motivo: Z." Indica que um aplicativo ou usuário iniciou uma reinicialização ou desligamento.
  • Identificação do evento 1076 ( alternativa ): "O motivo fornecido pelo usuário X para o último desligamento inesperado deste computador é: Y." Registra quando o primeiro usuário com privilégios de desligamento faz logon no computador após uma reinicialização ou desligamento inesperado e fornece um motivo para a ocorrência.

Perdi algum?

JohnC
fonte
3
Para diferenciar entre perda de energia e uma reinicialização devido à verificação de bug, procure a combinação de identificação de evento 41 (fonte: Microsoft-Windows-Kernel-Power) e identificação de evento 1001: (fonte: BugCheck). O primeiro sem o último indica perda de energia ou redefinição.
sendmoreinfo
4
Isso foi útil. Obrigado johnC. No campo de entrada ID do evento Inclui / Exclui na janela Filtro do registro atual, digitei "6005, 6006, 6008, 6009, 6013, 1074, 1076" e isso me deu exatamente o que eu precisava.
21316 Joey
11
Você provavelmente deve adicionar Kernel-Generalcom eventid12 , que normalmente é o primeiro eventid a ser registrado após uma reinicialização / redefinição etc e mostra a "hora de início do sistema" real, ou seja: "O sistema operacional foi iniciado na hora do sistema 2017 - 09 - 19T02: 46: 06.582794900Z. "
Abel
Os links nesta resposta estão quebrados
Tim Schmelter
11
Pesquisei, mas não consegui encontrar os documentos atuais da Microsoft nos códigos de log de eventos, por isso criei um problema no github do Microsoft Docs para obter conselhos / consenso sobre onde reviver esse conteúdo no novo regime do MS docs, github.com/MicrosoftDocs/windowsserverdocs/issues / 444 . @ tim-schmelter, por favor, vote e adicione seus pensamentos.
JohnC 8/0318
4

Eu simplesmente deixaria isso como um comentário, já que o JohnC basicamente cobriu tudo, mas ainda não estou autorizado a fazê-lo.

Os eventos que ele descreveu foram usados ​​por um bom tempo, para que funcionem em qualquer sistema operacional que você mencionou, bem como em seus irmãos da área de trabalho. As páginas de identificação de evento às quais ele vinculou, como a do 6006 no TechNet, mencionam o Windows Server 2003.

Se houve um desligamento elegante, iniciado pelo usuário ou não, você também deve ver algum ID do Evento 7036 informando que vários serviços "entraram no estado parado". Quando a máquina iniciar novamente, você verá mais 7036s anunciando que os serviços estão entrando no estado de execução.

JTL
fonte
2
Você também verá um grande bloco do ID do evento 7036 se um serviço alternar os estados repetidamente, portanto, não é a melhor maneira de procurar reinicializações. Você deve procurar os eventos descritos por JohnC, primeiro.
JTL
3

Aproveitando a resposta do @JohnC e estendendo-a

Você pode usar um filtro XML como:

<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) &lt;= 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) &lt;= 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) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="Microsoft-Windows-Kernel-Power/Thermal-Diagnostic">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-Kernel-Power'] and (Level=1 ) and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='User32'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
<Select Path="System">*[System[Provider[@Name='Microsoft-Windows-WER-SystemErrorReporting'] and TimeCreated[timediff(@SystemTime) &lt;= 172800000]]]</Select>
</Query>
</QueryList>

Você pode substituir 172800000 pelos valores abaixo para o intervalo de tempo:

86400000 - Últimas 24 horas

172800000 - Últimos 2 dias

604800000 - Últimos 7 dias

Isso mostrará muito mais detalhes a partir do momento em que o servidor / pc ficou offline. Inclui eventos Kernel-Power, User32 e EventLog.

elemer82
fonte
2

Eu prefiro realizar atividades na linha de comando. Aqui está o início de um trecho que você pode aproveitar. Isso mostra os 30.000 registros do sistema mais recentes e retorna as reinicializações dentro desses registros.

Get-EventLog -LogName System -Newest 30000 | Where-Object {$_.EventID -eq 6005}
Rakaim
fonte