Cronologia riavvio / arresto di Windows Server


87

Come posso visualizzare facilmente una cronologia di ogni riavvio o arresto del mio Windows Server e il motivo per cui, inclusi quelli avviati dall'utente, avviati dal sistema e si sono arrestati in modo anomalo?

Il registro eventi di Windows è una risposta ovvia ma qual è l'elenco completo degli eventi che dovrei visualizzare?

Ho trovato questi post che rispondono parzialmente alla mia domanda:

ma quelli non coprono tutti gli scenari AFAIK e le informazioni sono difficili da capire perché sono distribuite su più risposte.

Ho diverse versioni di Windows Server, quindi una soluzione che funziona almeno per le versioni 2008, 2008 R2, 2012 e 2012 R2 sarebbe l'ideale.


1
In alcune situazioni, TurnedOnTimesView di Nirsoft può essere abbastanza buono. ( nirsoft.net/utils/computer_turned_on_times.html ) mostra i tempi di riavvio e spegnimento.
Peter Hahndorf,

Usi uno strumento di monitoraggio esterno, .eg, opsview, nagios, icinga, shinken? Questi strumenti memorizzano i risultati del monitoraggio in un database e quindi è possibile verificare se i server sono stati riavviati e quando,
030

Risposte:


101

La risposta più chiara e concisa che ho potuto trovare è:

che elenca questi ID evento da monitorare (citati ma modificati e riformattati dall'articolo):

  • ID evento 6005 ( alternativo ): "Il servizio registro eventi è stato avviato." Questo è sinonimo di avvio del sistema.
  • ID evento 6006 ( alternativo ): "Il servizio registro eventi è stato arrestato". Questo è anche un arresto del sistema.
  • ID evento 6008 ( alternativo ): "L'arresto del sistema precedente era imprevisto." Registra che il sistema è stato avviato dopo che non è stato spento correttamente.
  • ID evento 6009 ( alternativo ): indica il nome del prodotto, la versione, il numero di build, il numero di service pack e il tipo di sistema operativo Windows rilevati all'avvio.
  • ID evento 6013: visualizza il tempo di attività del computer. Non esiste una pagina TechNet per questo ID.

Aggiungete a questo un altro paio dalle risposte di errore del server elencate nel mio OP:

  • ID evento 1074 ( alternativo ): "Il processo X ha avviato il riavvio / arresto del computer per conto dell'utente Y per il seguente motivo: Z." Indica che un'applicazione o un utente hanno avviato un riavvio o un arresto.
  • ID evento 1076 ( alternativo ): "Il motivo fornito dall'utente X per l'ultimo arresto imprevisto di questo computer è: Y." Registra quando il primo utente con privilegi di arresto accede al computer dopo un riavvio o uno spegnimento imprevisto e fornisce un motivo per il verificarsi.

Ne ho perso qualcuno?


3
Per distinguere tra perdita di potenza e riavvio a causa di un controllo errori, cerca la combinazione di ID evento 41 (fonte: Microsoft-Windows-Kernel-Power) e ID evento 1001: (fonte: BugCheck). L'ex senza quest'ultimo indica perdita di potenza o ripristino.
sendmoreinfo,

4
Questo è stato utile. Grazie johnC. Nel campo di immissione dell'ID evento Include / Excludes nella finestra Filtro registro corrente, ho inserito "6005, 6006, 6008, 6009, 6013, 1074, 1076" e mi ha dato esattamente ciò di cui avevo bisogno.
Joey,

1
Probabilmente dovresti aggiungere Kernel-Generalcon eventid12 , che in genere è il primo eventid ad essere registrato dopo un riavvio / ripristino ecc. E mostra l'attuale "ora di avvio del sistema", ovvero: "Il sistema operativo è stato avviato all'ora di sistema 2017 - 09 - 19T02: 46: 06.582794900Z ".
Abel,

I collegamenti in questa risposta sono interrotti
Tim Schmelter

1
Cerco ma non sono riuscito a trovare i documenti Microsoft correnti sui codici registro eventi, quindi ho creato un problema nel github di Microsoft Docs per raccogliere consigli / consenso su dove ripristinare questi contenuti nel nuovo regime di documenti MS, github.com/MicrosoftDocs/windowsserverdocs/issues / 444 . @ tim-schmelter, per favore, vota e aggiungi i tuoi pensieri.
Giovanni

4

Vorrei semplicemente lasciare questo come commento poiché JohnC ha sostanzialmente coperto tutto, ma non mi è ancora permesso farlo.

Gli eventi che ha descritto sono stati usati per un bel po ', quindi funzioneranno per qualsiasi sistema operativo che hai citato, così come i loro fratelli desktop. Le pagine ID evento a cui si è collegato, come quella per 6006 su TechNet, menzionano Windows Server 2003.

Se si è verificato un arresto elegante, avviato dall'utente o meno, dovresti vedere anche un ID evento 7036 che ti dice che vari servizi "sono entrati nello stato di arresto". Quando la macchina si riavvia, vedrai più 7036 che annunciano che i servizi stanno entrando nello stato di funzionamento.


2
Vedrai anche un grande blocco di ID evento 7036 se un servizio esegue ripetutamente il ciclo degli stati, quindi non è il modo migliore per cercare i riavvii. Prima dovresti cercare gli eventi descritti da JohnC.
JTL

3

Basandosi sulla risposta di @JohnC ed estendendola

È possibile utilizzare un filtro XML come:

<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>

È possibile sostituire 172800000 con i valori seguenti per l'intervallo di tempo:

86400000 - Ultime 24 ore

172800000 - Ultimi 2 giorni

604800000 - Ultimi 7 giorni

Questo mostrerà molti più dettagli dal momento in cui il server / pc è andato offline. Include eventi Kernel-Power, User32 ed EventLog.


2

Preferisco svolgere attività dalla riga di comando. Ecco l'inizio di uno snippet che puoi sfruttare. Ciò mostra i 30.000 record di sistema più recenti e restituisce i riavvii all'interno di tali record.

Get-EventLog -LogName System -Newest 30000 | Where-Object {$_.EventID -eq 6005}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.