113 votes

Historique des redémarrages et des arrêts de Windows Server

Comment puis-je facilement voir un historique de chaque fois que mon serveur Windows a redémarré ou s'est arrêté et la raison pour laquelle il a redémarré ou s'est arrêté, y compris à l'initiative de l'utilisateur, du système et en cas de panne du système ?

Le journal des événements de Windows est une réponse évidente, mais quelle est la liste complète des événements que je dois consulter ?

J'ai trouvé ces posts qui répondent partiellement à ma question :

mais ils ne couvrent pas tous les scénarios et les informations sont difficiles à comprendre car elles sont réparties sur plusieurs réponses.

Je possède plusieurs versions de Windows Server. Une solution qui fonctionne au moins pour les versions 2008, 2008 R2, 2012 et 2012 R2 serait idéale.

136voto

JohnC Points 2414

La réponse la plus claire et la plus succincte que j'ai pu trouver est la suivante :

qui liste les identifiants des événements à surveiller (cité mais édité et reformaté à partir de l'article) :

  • ID de l'événement 6005 ( alternativement ) : "Le service de journal des événements a été lancé". C'est un synonyme de démarrage du système.
  • ID de l'événement 6006 ( alternativement ) : "Le service de journal des événements a été arrêté". C'est un synonyme d'arrêt du système.
  • ID de l'événement 6008 ( alternativement ) : "L'arrêt du système précédent était inattendu." Enregistre le démarrage du système après qu'il n'ait pas été arrêté correctement.
  • ID de l'événement 6009 ( alternativement ) : Indique le nom du produit Windows, sa version, le numéro de build, le numéro du service pack et le type de système d'exploitation détecté au démarrage.
  • Événement ID 6013 : Affiche le temps de fonctionnement de l'ordinateur. Il n'y a pas de page TechNet pour cet ID.

Ajoutez à cela deux autres réponses à la question sur les pannes de serveur énumérées dans mon message :

  • ID de l'événement 1074 ( alternativement ) : "Le processus X a initié le redémarrage/arrêt de l'ordinateur au nom de l'utilisateur Y pour la raison suivante : Z." Indique qu'une application ou un utilisateur a initié un redémarrage ou un arrêt.
  • ID de l'événement 1076 ( alternativement ) : "La raison fournie par l'utilisateur X pour le dernier arrêt inattendu de cet ordinateur est : Y." Enregistre le moment où le premier utilisateur ayant des privilèges d'arrêt se connecte à l'ordinateur après un redémarrage ou un arrêt inattendu et fournit une raison pour cet événement.

En ai-je manqué ?

28voto

ocroquette Points 251

Tourner @user10082 commentaire en une réponse. La solution proposée est un one-liner, sous forme de Powershell script :

Get-EventLog -LogName System |? {$_.EventID -in (6005,6006,6008,6009,1074,1076)} | ft TimeGenerated,EventId,Message -AutoSize –wrap

Voici le résultat :

TimeGenerated         EventID Message
-------------         ------- -------
5/30/2021 11:23:16 AM    6005 The Event log service was started.
5/30/2021 11:23:16 AM    6009 Microsoft (R) Windows (R) 10.00. 19042  Multiprocessor Free.
5/30/2021 11:23:16 AM    6008 The previous system shutdown at 18:35:45 on 24/05/2021 was unexpected.
5/24/2021 11:55:45 AM    6005 The Event log service was started.
5/24/2021 11:55:45 AM    6009 Microsoft (R) Windows (R) 10.00. 19042  Multiprocessor Free.
5/24/2021 11:55:31 AM    6006 The Event log service was stopped.
5/24/2021 11:55:27 AM    1074 The process C:\Windows\system32\SystemSettingsAdminFlows.exe (DESKTOP) has
                              initiated the restart of computer DESKTOP on behalf of user DESKTOP\User
                              for the following reason: Other (Unplanned)
                               Reason Code: 0x0
                               Shutdown Type: restart
                               Comment:

5voto

Calchas Points 246

Je préfère accomplir des activités à partir de la ligne de commande. Voici le début d'un extrait que vous pouvez exploiter. Il affiche les 30 000 derniers enregistrements du système et renvoie les redémarrages dans ces enregistrements.

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

5voto

elemer82 Points 141

Construire sur @JohnC et de l'étendre

Vous pourriez utiliser un filtre XML comme :

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

Vous pouvez remplacer 172800000 par les valeurs ci-dessous pour l'intervalle de temps :

86400000 - Dernières 24 heures

172800000 - Derniers 2 jours

604800000 - 7 derniers jours

Cela montrera beaucoup plus de détails à partir du moment où le serveur/pc a été mis hors ligne. Il inclut les événements Kernel-Power, User32 et EventLog.

4voto

JTL Points 141

Je voudrais simplement laisser un commentaire puisque JohnC a pratiquement tout couvert, mais je ne suis pas encore autorisé à le faire.

Les événements qu'il a décrits sont utilisés depuis un certain temps, ils fonctionneront donc pour tous les systèmes d'exploitation que vous avez mentionnés, ainsi que pour leurs homologues de bureau. Les pages d'identification d'événements auxquelles il a fait référence, telles que celle de 6006 sur TechNet, mentionnez Windows Server 2003.

S'il y a eu une fermeture élégante, initiée par l'utilisateur ou autre, vous devriez également voir quelques ID de l'événement 7036 vous indiquant que divers services sont "entrés dans l'état d'arrêt". Au fur et à mesure que la machine redémarre, vous verrez plus de 7036s annonçant que les services entrent dans l'état de fonctionnement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X