Historial de reinicio / apagado de Windows Server

87

¿Cómo puedo ver fácilmente un historial de cada vez que mi Windows Server se ha reiniciado o apagado y la razón por la cual, incluido el inicio del usuario, el inicio del sistema y el bloqueo del sistema?

El Registro de eventos de Windows es una respuesta obvia, pero ¿cuál es la lista completa de eventos que debo ver?

Encontré estas publicaciones que responden parcialmente mi pregunta:

pero esos no cubren todos los escenarios AFAIK y la información es difícil de entender porque se extiende a través de múltiples respuestas.

Tengo varias versiones de Windows Server, por lo que una solución que funcione al menos para las versiones 2008, 2008 R2, 2012 y 2012 R2 sería ideal.

JohnC
fuente
1
En algunas situaciones, TurnedOnTimesView de Nirsoft puede ser lo suficientemente bueno. ( nirsoft.net/utils/computer_turned_on_times.html ) muestra los tiempos de reinicio y apagado.
Peter Hahndorf
¿Utiliza una herramienta de monitoreo externa, .eg, opsview, nagios, icinga, shinken? Estas herramientas almacenan los resultados de monitoreo en una base de datos y luego puede verificar si los servidores se reiniciaron y cuándo,
030

Respuestas:

101

La respuesta más clara y sucinta que pude encontrar es:

que enumera estos identificadores de eventos para monitorear (citado pero editado y reformateado del artículo):

  • Id. De suceso 6005 ( alternativo ): "El servicio de registro de sucesos se inició". Esto es sinónimo de inicio del sistema.
  • Id. De suceso 6006 ( alternativo ): "El servicio de registro de sucesos se detuvo". Esto es sinónimo de apagado del sistema.
  • Id. De suceso 6008 ( alternativo ): "El apagado anterior del sistema fue inesperado". Registra que el sistema se inició después de que no se cerró correctamente.
  • Id. De suceso 6009 ( alternativo ): indica el nombre del producto de Windows, la versión, el número de compilación, el número del paquete de servicio y el tipo de sistema operativo detectado en el momento del arranque.
  • Id. De evento 6013: muestra el tiempo de actividad de la computadora. No hay página de TechNet para esta identificación.

Agregue a eso un par más de las respuestas de Falla del servidor que figuran en mi OP:

  • Id. De suceso 1074 ( alternativo ): "El proceso X ha iniciado el reinicio / apagado de la computadora en nombre del usuario Y por la siguiente razón: Z". Indica que una aplicación o un usuario inició un reinicio o apagado.
  • Id. De suceso 1076 ( alternativo ): "El motivo proporcionado por el usuario X para el último apagado inesperado de esta computadora es: Y". Registra cuando el primer usuario con privilegios de apagado inicia sesión en la computadora después de un reinicio o apagado inesperado y proporciona una razón para la ocurrencia.

¿Extrañé alguna?

JohnC
fuente
3
Para diferenciar entre la pérdida de energía y un reinicio debido a la verificación de errores, busque la combinación de Id. De evento 41 (fuente: Microsoft-Windows-Kernel-Power) y Id. De evento 1001: (fuente: BugCheck). El primero sin este último indica pérdida de energía o reinicio.
sendmoreinfo 01 de
44
Esto fue útil. Gracias johnC. En el campo de entrada del ID de evento Incluye / Excluye en la ventana Filtrar registro actual, ingresé "6005, 6006, 6008, 6009, 6013, 1074, 1076" y me dio exactamente lo que necesitaba.
joey
1
Probablemente debería agregar Kernel-Generalcon eventid12 , que generalmente es el primer eventid que se registra después de un reinicio / reinicio, etc. y muestra la "hora de inicio del sistema" real, es decir: "El sistema operativo se inició a la hora del sistema 2017 - 09 - 19T02: 46: 06.582794900Z ".
Abel
Los enlaces en esta respuesta están rotos
Tim Schmelter
1
Busqué pero no pude encontrar los documentos actuales de Microsoft en los códigos de registro de eventos, así que creé un problema en el github de Microsoft Docs para obtener consejos / consenso sobre dónde revivir este contenido en el nuevo régimen de documentos de MS, github.com/MicrosoftDocs/windowsserverdocs/issues / 444 . @ tim-schmelter por favor vota y agrega tus pensamientos.
JohnC
4

Simplemente dejaría esto como un comentario, ya que JohnC básicamente ha cubierto todo, pero todavía no tengo permitido hacerlo.

Los eventos que describió se han utilizado durante bastante tiempo, por lo que funcionarán para cualquiera de los sistemas operativos que mencionó, así como para sus hermanos de escritorio. Las páginas de ID de evento a las que se vinculó, como la del 6006 en TechNet, mencionan Windows Server 2003.

Si hubo un apagado elegante, iniciado por el usuario o no, también debería ver algún Id. De evento 7036 que le indica que varios servicios "entraron en estado detenido". A medida que la máquina se inicia nuevamente, verá más 7036 anunciando que los servicios están entrando en estado de ejecución.

JTL
fuente
2
También verá un gran bloque de ID de evento 7036 si un servicio realiza ciclos repetidos, por lo que no es la mejor manera de buscar reinicios. Primero debe buscar los eventos descritos por JohnC.
JTL
3

Basándose en la respuesta de @JohnC y extendiéndola

Puede usar un 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>

Puede reemplazar 172800000 con los siguientes valores para el rango de tiempo:

86400000 - Últimas 24 horas

172800000 - Últimos 2 días

604800000 - Últimos 7 días

Esto mostrará muchos más detalles desde el momento en que el servidor / PC se desconectó. Incluye los eventos Kernel-Power, User32 y EventLog.

elemer82
fuente
2

Prefiero realizar actividades desde la línea de comando. Aquí está el comienzo de un fragmento que puede aprovechar. Esto muestra los 30,000 registros más recientes del sistema y devuelve los reinicios dentro de esos registros.

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