2012-12-24 14:24:07 +0000 2012-12-24 14:24:07 +0000
112
112

¿Cómo puedo saber cuándo se reinició Windows por última vez?

¿Cómo puedo saber cuándo se reinició mi equipo con Windows 7 por última vez?

Prefiero una solución que no implique buscar en el registro de eventos, sino algo como wmic o tal vez cmd comandos.

Respuestas (14)

173
173
173
2012-12-24 14:32:31 +0000

El comando systeminfo es casi lo que necesitas. En inglés Windows 7 también puede hacer:

systeminfo | find /i "Boot Time"

O con la ayuda de WMIC :

wmic os get lastbootuptime

La principal diferencia entre Windows 7 y Windows XP es que en Windows 7 Microsoft sólo puede mostrar el último tiempo de arranque.


También en el Administrador de tareas:

25
25
25
2014-12-09 15:34:46 +0000

Otra forma de hacerlo es utilizar la siguiente línea de comandos que funciona tanto en Windows XP como en Windows 7:

net statistics workstation

Tiene la ventaja de ser más rápida que la alternativa systeminfo al formatear la fecha (lo que no hace wmic). También obtienes algunas otras informaciones que pueden ser útiles si realmente estás usando este comando para depurar un ordenador (ya que estás pidiendo específicamente cmd, asumo que no estás haciendo esto de forma programada).

Puedes encontrar más información sobre el comando net statistics aquí: http://technet.microsoft.com/en-us/library/bb490714.aspx

Aquí hay un ejemplo del resultado (usando una copia en francés de Windows 7 Pro SP1 x64, el idioma del usuario no importa mucho para la línea de comandos):

(el nombre del ordenador está borrado a propósito)


Más detalles en http://en. wikipedia.org/wiki/Uptime sobre la precisión al determinar el tiempo de funcionamiento del sistema.

  • *

Nota importante : este método determina cuándo se arrancó el ordenador por última vez, no su tiempo de funcionamiento. Los dos números serán diferentes si se utiliza el modo de suspensión/hibernación.

19
19
19
2012-12-24 14:41:41 +0000

Está la propiedad LastBootUpTime de la clase Win32_OperatingSystem. Puedes usar WMIC con este comando:

wmic os get lastbootuptime

O si usas Powershell, puedes convertir la hora en algo más legible que ese molesto formato de fecha y hora de WMI:

Get-WmiObject -class Win32_OperatingSystem | Select-Object __SERVER,@{label='LastBootUpTime';expression={$_.ConvertToDateTime($_.LastBootUpTime)}}

Tenga en cuenta que en versiones posteriores de PowerShell, también puede usar Get-CimInstance, que devolverá automáticamente el valor como una fecha-hora:

Get-CimInstance -Class Win32_OperatingSystem | Select-Object LastBootUpTime

Lo único irritante es que Get-CimInstance a veces cambiará el nombre de algunos campos del sistema de los objetos WMI, como por ejemplo __SERVER aquí. Tendrías que usar CSName o PSComputerName, lo que parece funcionar para mí.

9
9
9
2017-03-28 13:19:57 +0000
4
4
4
2018-08-21 07:51:22 +0000

Tenga en cuenta que como señaló Alex el comando /sleepstudy no se añadió hasta Windows 8.1. /systempowerreport podría funcionar en su lugar.

Tengan en cuenta que algunas de estas otras respuestas nunca me funcionaron, como buscar en el registro de eventos por ejemplo siempre faltaban algunas entradas. La respuesta de @Florisz también es correcta en ese sentido. Aquí está mi solución:

En un cmd shell de administrador, ejecuta el siguiente comando:

powercfg /sleepstudy /output sleepstudy.html

Luego abre el archivo sleepstudy.html en un navegador. Será recibido con estadísticas sorprendentes sobre el apagado/arranque/espera/hibernación de los últimos tres días. (por lo tanto, ejecute periódicamente si lo necesita)

Un ejemplo de una salida: (AFAIR, Showdown (Hybrid) significa arranque rápido)

Fuente / Documentación | También relacionado

2
2
2
2016-05-24 20:46:59 +0000

otra forma en un archivo batch para obtener el tiempo de arranque con wmic pero en forma legible para los humanos :

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
echo DTS : %DTS%
echo BOOTTIME :%BOOTTIME%

salida :

DTS : 20170308073729.491206+060

TIEMPO DE ARRANQUE : 2017-03-08 07:37

2
2
2
2017-10-07 19:32:19 +0000

Puede usar PowerShell para esto.

Apagado


Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 200 }

Esto le dará una lista de los tiempos de apagado registrados.

Comando alternativo, mejor optimizado para conexiones remotas:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 200; }

Salida de ejemplo:

TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-01-28 18:25:46 200 Critical Windows has shutdown
2016-11-01 19:55:21 200 Error Windows has shutdown
2016-10-29 00:18:38 200 Critical Windows has shutdown
2016-10-26 23:16:55 200 Warning Windows has shutdown
2016-10-26 15:37:40 200 Warning Windows has shutdown
2016-10-26 02:18:24 200 Warning Windows has shutdown
2016-10-26 02:10:34 200 Warning Windows has shutdown
2016-10-26 02:04:01 200 Warning Windows has shutdown
2016-10-25 14:23:11 200 Warning Windows has shutdown
2016-10-25 13:07:46 200 Error Windows has shutdown
2016-10-25 00:18:12 200 Error Windows has shutdown
2016-10-19 13:16:39 200 Critical Windows has shutdown

Arranque


El siguiente comando le dará una lista de los tiempos de arranque registrados.

Get-WinEvent -LogName Microsoft-Windows-Diagnostics-Performance/Operational | Where { $_.Id -eq 100}

Comando alternativo, mejor optimizado para conexiones remotas:

Get-WinEvent -FilterHashtable @{LogName = "Microsoft-Windows-Diagnostics-Performance/Operational"; Id = 100; }

Salida de ejemplo:

TimeCreated Id LevelDisplayName Message
----------- -- ---------------- -------
2017-10-07 21:35:38 100 Critical Windows has started up
2017-01-28 18:25:48 100 Critical Windows has started up
2016-12-11 17:45:07 100 Critical Windows has started up
2016-11-16 13:26:52 100 Critical Windows has started up
2016-11-01 19:55:21 100 Critical Windows has started up
2016-10-29 00:18:39 100 Critical Windows has started up
2016-10-26 23:16:55 100 Error Windows has started up
2016-10-26 14:51:07 100 Error Windows has started up
2016-10-26 02:24:01 100 Error Windows has started up
2016-10-26 02:18:24 100 Critical Windows has started up
2016-10-26 02:10:34 100 Error Windows has started up
2016-10-26 02:04:01 100 Critical Windows has started up
2016-10-25 14:23:12 100 Error Windows has started up
2016-10-25 13:07:47 100 Error Windows has started up
2016-10-25 12:56:23 100 Error Windows has started up
2016-10-19 13:16:39 100 Critical Windows has started up

He probado esto en PowerShell 5.1 y en Windows 10.0.15063. Pero también debería funcionar en Windows 7, siempre y cuando tenga al menos PowerShell 3.0. Tenga en cuenta que debe ejecutarlo como admin.

Encontrará la documentación completa del comando aquí docs.microsoft.com

2
2
2
2016-07-25 15:12:29 +0000

En casi cualquier versión de Windows puedes comprobar la marca de tiempo en el archivo de intercambio.

dir /a:h c:\pagefile.sys

2
2
2
2015-07-08 20:41:51 +0000

En Windows 7 prefiero

net statistics workstation

WMIC no tiene en cuenta el tiempo de sueño, y dejo mi estación de trabajo encerrada en el trabajo durmiendo durante la semana, lista para despertar al día siguiente.

2
2
2
2018-09-12 14:34:05 +0000

Para conseguirlo en PowerShell:

Function Get-LastBoot {
        if ($Host.Version.Major -lt 3) {
            Get-WmiObject win32_operatingsystem | Select-Object CSname, @{n = 'LastBootUpTime'; e = {$_.ConverttoDateTime($_.lastbootuptime)}}
        }
        else {
            Get-CimInstance -ClassName win32_operatingsystem | Select-Object CSname, LastBootUpTime
        }
    }

Este es el resultado:

CSname LastBootUpTime
------ --------------
LAPTOP1 2018-09-07 08:57:02
1
1
1
2018-08-17 11:38:18 +0000

Quiero añadir, que todos estos comandos realmente te dan las marcas de tiempo cuando un “reinicio” o “reboot” se hace. Y no cuando se hace un apagado y un arranque. Después de apagar y encender, el “último tiempo de arranque” reflejará la hora en que el sistema se “reinicia” realmente y no el tiempo de arranque real. Así que apagar/arrancar da el mismo resultado que volver de suspender/hibernar para la marca de tiempo de LastBootUpTime.

1
1
1
2018-05-23 16:10:40 +0000

Un par de respuestas mencionan net statistics workstation y he notado que ambas :

net statistics server

y

net statistics workstation

deberían proporcionar datos sobre el último arranque en la línea Statistics since ....

Sin embargo, algunas versiones del sistema operativo (como Svr2008/6.0) devolverán 1/1/1980 12:00 para la fecha cuando se use server. Así que por defecto usaré workstation.

También puedes abreviar algunos de los comandos como net stats workstation y obtener los mismos resultados. Finalmente, si saltas de un sistema a otro, la casilla CMD por defecto no es lo suficientemente grande para mostrar todos los resultados del comando. Así que canalizaré la salida a more para evitar el desplazamiento hacia arriba para ver el tiempo de arranque. Por lo tanto, mi comando por defecto es:

net stats workstation | more

1
1
1
2017-07-17 18:08:00 +0000

De una pregunta similar de ServerFault , busca/filtra el registro de eventos del sistema de Windows por el ID de evento 6009.

En Windows 10: Event Viewer > Windows Logs > System y luego la acción Filter Current Log....

0
0
0
2019-02-21 16:36:38 +0000

Igual que la respuesta de Max…

for /f %%a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%%a
set BOOTTIME=%DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%
echo DTS : %DTS%
echo BOOTTIME :%BOOTTIME%

…pero en línea:

for /f %a in ('WMIC OS GET lastbootuptime ^| find "."') DO set DTS=%a && echo %DTS:~0,4%-%DTS:~4,2%-%DTS:~6,2% %DTS:~8,2%:%DTS:~10,2%

Esta implementación de wmi puede parecer un poco desordenada pero es muy rápida comparada con otras implementaciones de powerhell o systeminfo y puedes cambiar fácilmente el formato ya que es explícito en el código.

Gracias Max.