Historique de redémarrage / arrêt de Windows Server

87

Comment puis-je voir facilement un historique de chaque redémarrage ou de tout arrêt de mon serveur Windows Server, y compris la raison pour laquelle, déclenchée par l'utilisateur, par le système et en panne?

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

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

mais ceux-ci ne couvrent pas tous les scénarios et autant que je sache, les informations sont difficiles à comprendre car elles sont réparties entre plusieurs réponses.

Comme j'ai plusieurs versions de Windows Server, une solution fonctionnant au moins pour les versions 2008, 2008 R2, 2012 et 2012 R2 serait idéale.

JohnC
la source
1
Dans certaines situations, TurnedOnTimesView de Nirsoft peut être suffisant. ( nirsoft.net/utils/computer_turned_on_times.html ) indique les temps de redémarrage et d'arrêt.
Peter Hahndorf
Utilisez-vous un outil de surveillance externe, .eg, opsview, nagios, icinga, shinken? Ces outils stockent les résultats de la surveillance dans une base de données et vous pouvez vérifier si les serveurs ont été redémarrés et quand,
030

Réponses:

101

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

qui répertorie ces identifiants d’événement à surveiller (cités mais édités et reformatés à partir d’article):

  • ID d'événement 6005 ( alternatif ): «Le service de journal des événements a été démarré». Il s'agit du démarrage du système.
  • Event ID 6006 ( alternative ): «Le service de journal des événements a été arrêté.» Il s’agit de l’arrêt du système.
  • ID d'événement 6008 ( alternative ): "L'arrêt du système précédent était inattendu." Enregistre que le système a démarré après qu’il n’ait pas été arrêté correctement.
  • ID d'événement 6009 ( alternatif ): indique le nom du produit Windows, la 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.
  • ID d'événement 6013: affiche le temps de disponibilité de l'ordinateur. Il n'y a pas de page TechNet pour cet identifiant.

Ajoutez à cela quelques réponses supplémentaires aux erreurs de serveur répertoriées dans mon OP:

  • ID d'événement 1074 ( alternative ): "Le processus X a lancé le redémarrage / l'arrêt de l'ordinateur pour le compte 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 d'événement 1076 ( alternatif ): "La raison fournie par l'utilisateur X pour le dernier arrêt inattendu de cet ordinateur est: Y." Enregistre lorsque le premier utilisateur disposant de privilèges d'arrêt ouvre une session sur l'ordinateur après un redémarrage ou un arrêt imprévu et fournit un motif pour l'occurrence.

En ai-je manqué?

JohnC
la source
3
Pour faire la différence entre une panne de courant et un redémarrage dû à une anomalie, vérifiez la combinaison de l'ID d'événement 41 (source: Microsoft-Windows-Kernel-Power) et de l'ID d'événement 1001: (source: BugCheck). Former sans ce dernier indique une panne de courant ou une réinitialisation.
sendmoreinfo
4
C'était utile. Merci johnC. Dans le champ de saisie de l'ID d'événement comprend / exclut de la fenêtre Filtrer le journal actuel, j'ai saisi "6005, 6006, 6008, 6009, 6013, 1074, 1076" et cela m'a donné exactement ce dont j'avais besoin.
joey
1
Vous devriez probablement ajouter Kernel-Generalwith eventid12 , qui est généralement le premier eventid à être enregistré après un redémarrage / réinitialisation, etc., et affiche "l'heure de démarrage du système", c'est-à-dire: "Le système d'exploitation a démarré à l'heure système 2017 - 09 - 19T02: 46: 06.582794900Z. "
Abel le
Les liens dans cette réponse sont cassés
Tim Schmelter
1
Je cherche mais je n'ai pas trouvé les documents Microsoft docs actuels sur les codes de journal des événements. J'ai donc créé un problème dans le github Microsoft Docs afin de recueillir des conseils / un consensus sur l'endroit où redonner vie à ce contenu dans le nouveau régime de documents MS, github.com/MicrosoftDocs/windowsserverdocs/issues. / 444 . @ tim-schmelter s'il vous plaît upvote et ajouter vos pensées.
JohnC
4

Je laisserais simplement cela comme 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 ont été utilisés pendant un bon bout de temps, ils vont donc fonctionner pour n'importe lequel des systèmes d'exploitation que vous avez mentionnés, ainsi que pour leurs frères de bureau. Les pages d’identification d’événement auxquelles il a lié, telles que celle de 6006 sur TechNet, mentionnent Windows Server 2003.

S'il y a eu un arrêt élégant, à l'initiative de l'utilisateur ou autrement, vous devriez également voir un ID d'événement 7036 vous indiquant que divers services "sont entrés à l'état arrêté". Lorsque la machine redémarre, vous verrez plus de 7036 annoncer que les services entrent dans l’état de fonctionnement.

JTL
la source
2
Vous verrez également un gros bloc d’ID d’événement 7036 si un service répète successivement les états, ce n’est donc pas la meilleure façon de rechercher des redémarrages. Vous devriez commencer par rechercher les événements décrits par JohnC.
JTL
3

Construire sur la réponse de @JohnC et la prolonger

Vous pouvez 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 la plage de temps:

86400000 - dernières 24 heures

172800000 - 2 derniers jours

604800000 - 7 derniers jours

Cela montrera beaucoup plus de détails à partir du moment où le serveur / pc s'est déconnecté. Il inclut les événements Kernel-Power, User32 et EventLog.

elemer82
la source
2

Je préfère accomplir des activités en ligne de commande. Voici le début d'un extrait que vous pouvez exploiter. Cela montre les 30 000 enregistrements système les plus récents et renvoie les redémarrages dans ces enregistrements.

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