Windows Server-Neustart / Herunterfahren-Verlauf

87

Wie kann ich den Verlauf jedes Neustarts oder Herunterfahrens von Windows Server und den Grund dafür, einschließlich vom Benutzer initiierter, vom System initiierter und abgestürzter Systeme, auf einfache Weise anzeigen?

Das Windows-Ereignisprotokoll ist eine offensichtliche Antwort. Wie lautet jedoch die vollständige Liste der Ereignisse, die ich anzeigen sollte?

Ich habe diese Posts gefunden, die meine Frage teilweise beantworten:

Diese decken jedoch nicht jedes AFAIK-Szenario ab, und die Informationen sind schwer zu verstehen, da sie auf mehrere Antworten verteilt sind.

Ich habe mehrere Versionen von Windows Server, daher wäre eine Lösung, die für mindestens die Versionen 2008, 2008 R2, 2012 und 2012 R2 funktioniert, ideal.

JohnC
quelle
1
In einigen Situationen ist TurnedOnTimesView von Nirsoft möglicherweise ausreichend. ( nirsoft.net/utils/computer_turned_on_times.html ) zeigt die Neustart- und Abschaltzeiten an.
Peter Hahndorf
Verwenden Sie ein externes Überwachungstool, z. B. opsview, nagios, icinga, shinken? Diese Tools speichern die Monitoring - Ergebnisse in einer Datenbank und dann können Sie überprüfen , ob Server neu gestartet wurden und wenn,
030

Antworten:

100

Die klarste und prägnanteste Antwort, die ich finden konnte, ist:

die diese zu überwachenden Ereignis-IDs auflistet (zitiert, aber bearbeitet und aus dem Artikel neu formatiert):

  • Ereignis-ID 6005 ( alternativ ): "Der Ereignisprotokolldienst wurde gestartet." Dies ist ein Synonym für den Systemstart.
  • Ereignis-ID 6006 ( alternativ ): "Der Ereignisprotokolldienst wurde beendet." Dies ist gleichbedeutend mit dem Herunterfahren des Systems.
  • Ereigniskennung 6008 ( alternativ ): "Das vorherige Herunterfahren des Systems war unerwartet." Zeichnet auf, dass das System gestartet wurde, nachdem es nicht ordnungsgemäß heruntergefahren wurde.
  • Ereignis-ID 6009 ( alternativ ): Gibt den Windows-Produktnamen, die Version, die Build-Nummer, die Service Pack-Nummer und den Betriebssystemtyp an, die beim Start erkannt wurden.
  • Ereignis-ID 6013: Zeigt die Betriebszeit des Computers an. Zu dieser ID gibt es keine TechNet-Seite.

Fügen Sie dem noch ein paar Antworten aus dem Server-Fehler hinzu, die in meinem OP aufgeführt sind:

  • Ereignis-ID 1074 ( alternativ ): "Der Prozess X hat den Neustart / Herunterfahren des Computers im Namen von Benutzer Y aus folgendem Grund initiiert: Z." Gibt an, dass eine Anwendung oder ein Benutzer einen Neustart oder Herunterfahren eingeleitet hat.
  • Ereignis-ID 1076 ( alternativ ): "Der von Benutzer X angegebene Grund für das letzte unerwartete Herunterfahren dieses Computers ist: Y." Zeichnet auf, wenn sich der erste Benutzer mit den Berechtigungen zum Herunterfahren nach einem unerwarteten Neustart oder Herunterfahren am Computer anmeldet, und gibt einen Grund für das Auftreten an.

Habe ich welche vermisst?

JohnC
quelle
3
Um zwischen einem Stromausfall und einem Neustart aufgrund einer Fehlerüberprüfung zu unterscheiden, suchen Sie nach einer Kombination aus Ereignis-ID 41 (Quelle: Microsoft-Windows-Kernel-Power) und Ereignis-ID 1001: (Quelle: BugCheck). Früher ohne letzteres bedeutet Stromausfall oder Reset.
sendmoreinfo
4
Das war hilfreich. Vielen Dank, dass Sie JohnC. Im Eingabefeld der Ereignis-ID "Einschließt / Ausschließt" im Fenster "Aktuelles Protokoll filtern" habe ich "6005, 6006, 6008, 6009, 6013, 1074, 1076" eingegeben und genau das bekommen, was ich brauchte.
Joey
1
Sie sollten wahrscheinlich Kernel-Generalmit eventid12 hinzufügen. Dies ist normalerweise die erste Ereignis- ID , die nach einem Neustart / Zurücksetzen usw. protokolliert wird und die tatsächliche "Systemstartzeit" anzeigt, dh: "Das Betriebssystem wurde zur Systemzeit 2017 gestartet. - 09 - 19T02: 46: 06.582794900Z.
Abel
Die Links in dieser Antwort sind kaputt
Tim Schmelter
1
Ich habe nach aktuellen Microsoft-Dokumenten in Ereignisprotokollcodes gesucht, sie jedoch nicht gefunden. Daher habe ich im Microsoft Docs-Github ein Problem erstellt, um Ratschläge und Konsens darüber zu erhalten, wo diese Inhalte im neuen MS Docs-Regime ( github.com/MicrosoftDocs/windowsserverdocs/issues) wiederbelebt werden können / 444 . @ tim-schmelter bitte stimme zu und füge deine gedanken hinzu.
JohnC
4

Ich würde dies einfach als Kommentar hinterlassen, da JohnC im Grunde alles behandelt hat, aber ich darf dies noch nicht tun.

Die von ihm beschriebenen Ereignisse werden seit einiger Zeit verwendet, sodass sie für jedes der von Ihnen genannten Betriebssysteme sowie für ihre Desktop-Brüder funktionieren. Auf den von ihm verlinkten Ereignis-ID-Seiten, wie der für 6006 in TechNet, wird Windows Server 2003 erwähnt.

Wenn es ein elegantes Herunterfahren gab, das vom Benutzer initiiert oder auf andere Weise ausgelöst wurde, sollten Sie auch eine Ereignis-ID 7036 sehen , die Ihnen mitteilt, dass verschiedene Dienste "in den gestoppten Zustand eingetreten" sind. Wenn der Computer wieder hochfährt, werden weitere 7036 gemeldet, dass die Dienste in den aktiven Zustand versetzt werden.

JTL
quelle
2
Außerdem wird ein großer Block mit der Ereignis-ID 7036 angezeigt, wenn ein Dienst wiederholt Statusdaten durchläuft. Daher ist dies nicht die beste Methode, um nach Neustarts zu suchen. Sie sollten zuerst nach den von JohnC beschriebenen Ereignissen suchen.
JTL,
3

Auf der Antwort von @JohnC aufbauen und diese erweitern

Sie könnten einen XML-Filter verwenden wie:

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

Sie können 172800000 durch die folgenden Werte für den Zeitraum ersetzen:

86400000 - Letzte 24 Stunden

172800000 - Letzte 2 Tage

604800000 - Letzte 7 Tage

Dies zeigt viel mehr Details von dem Zeitpunkt an, als der Server / PC offline ging. Es enthält Kernel-Power-, User32- und EventLog-Ereignisse.

elemer82
quelle
2

Ich bevorzuge es, Aktivitäten von der Kommandozeile aus durchzuführen. Hier ist der Beginn eines Snippets, das Sie nutzen können. Hier werden die letzten 30.000 Systemdatensätze angezeigt und die Neustarts in diesen Datensätzen zurückgegeben.

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