Cómo registrar eventos del sistema de forma eficaz con PowerShell



PowerShell es bastante útil si alguna vez has necesitado comprobar cuándo se reinició tu PC por última vez o investigar los apagados del sistema. No siempre es fácil encontrar esta información sin revisar manualmente los registros de eventos, y ahí es donde los scripts y comandos resultan útiles, especialmente si buscas una forma rápida y repetible. El problema es que PowerShell puede ser un poco confuso al principio, sobre todo si no estás familiarizado con los comandos o los ID de evento. A veces, los comandos no hacen exactamente lo que esperas de inmediato, o necesitan algunos ajustes según tu versión o configuración de Windows. Pero una vez que le coges el truco, es sorprendentemente potente para la resolución de problemas y el mantenimiento de registros.

Cómo rastrear los últimos eventos de reinicio y apagado en Windows con PowerShell

Determinar la última vez que se reinició su computadora usando PowerShell

Este método funciona porque Windows registra identificadores de evento específicos cuando el sistema se inicia o se apaga. En la mayoría de las configuraciones, el identificador de evento 6005 indica que el servicio de registro de eventos se inició (es decir, el PC arrancó) y el 6006 indica que el servicio de registro de eventos se detuvo (se apagó).El identificador de evento 6008 indica un apagado inesperado, lo cual resulta útil si se solucionan fallos o fallos que no son apagados normales. En algunos equipos, estos eventos no siempre aparecen de inmediato o, a veces, los registros se sobrescriben. Aun así, para la mayoría de las tareas cotidianas, es una forma rápida de averiguarlo.

  1. Abra Windows PowerShell. Normalmente se encuentra en Inicio > Windows PowerShell o puede acceder a él presionándolo Win + Xy seleccionándolo en el menú. Si desea obtener más información, puede que prefiera Windows Terminal con PowerShell.
  2. Ejecute el siguiente comando para obtener el evento de inicio más reciente:
  3. Get-WinEvent -LogName System | Where-Object {$_. Id -eq 6005 -or $_. Id -eq 6006 -or $_. Id -eq 6008} | Select-Object -Last 1 | Format-List

    Esto extrae el último evento registrado de inicio/apagado.¿ Por qué ? Porque estos eventos indican exactamente cuándo se inició o apagó Windows por última vez, incluyendo eventos inesperados como bloqueos.¿ Cuándo ? Cuando el registro contiene entradas recientes, lo cual suele ser cierto a menos que haya pasado un tiempo o se hayan borrado los registros.¿ Qué esperar ? Un desglose detallado del último bloqueo o reinicio, incluyendo la marca de tiempo. A veces, esto muestra varias líneas y otras veces solo una, dependiendo del sistema y la longitud del registro.

    Comprobación de apagados recientes con PowerShell

    Si le interesa saber cuándo se apagó el PC por última vez, incluyendo apagados inesperados, puede filtrar el ID de evento 13. Este es el que indica «El sistema operativo se apagó a la hora del sistema xyz».En algunas configuraciones, esto es aún más fiable. Simplemente ejecute:

    Get-EventLog -Newest 10 -LogName "System" | Where-Object {$_. EventID -eq 13}

    Este comando muestra las últimas 10 entradas de apagado, lo que suele ser suficiente para detectar alguna inesperada. El resultado es bastante claro y se puede interpretar directamente. Tenga en cuenta que, en versiones más recientes de Windows, como Windows 10/11, el Get-EventLogcmdlet puede estar obsoleto en favor de Get-WinEvent, pero aún funciona en la mayoría de los sistemas.

    Cómo ver el último inicio del sistema

    El registro de inicio es básicamente el mismo, solo se busca el ID de evento 12, que es «El sistema operativo se inició a la hora del sistema xyz».Simplemente ejecute:

    Get-EventLog -Newest 10 -LogName "System" | Where-Object {$_. EventID -eq 12}

    Esto le brindará una visión clara de cuándo se inició el sistema por última vez, especialmente si está solucionando problemas de inicio o simplemente desea verificar el tiempo de actividad.

    Consejos adicionales si los guiones no son suficientes

    A veces, los comandos de PowerShell dan resultados mixtos porque los registros se sobrescriben o están dañados. En esos casos, revisar el Visor de eventos manualmente (busque «Visor de eventos» en el menú Inicio y luego vaya a Registros de Windows > Sistema ) puede ser más rápido que manipular comandos. Además, automatice con scripts o programe informes periódicos si esta información es realmente crítica.

    • Recuerde que los comandos como `Get-WinEvent` son más recientes y flexibles, especialmente para búsquedas filtradas.
    • Los registros se pueden borrar manualmente o con herramientas de limpieza, por lo que la información no siempre es 100% infalible, es solo un aviso.
    • En algunas configuraciones, es posible que deba ejecutar PowerShell como administrador para acceder a determinados registros o eventos.


¿Te resultó útil este artículo?