Desea obtener una solución lista para usar para conocer el tiempo de actividad de su máquina desde el último apagado híbrido / inicio rápido, ¿verdad?
Puede obtener esta información (proporcionada por @allquixotic) desde EventLog usando PowerShell de esta manera:
PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))
Para incrustar el comando powershell en un script de shell de Windows, puede hacer esto en su lugar:
c:\> powershell.exe -nologo -command Write-Host $('Time since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source \"Microsoft-Windows-Power-Troubleshooter\" -Newest 1).TimeGenerated))
Howerver, para que esto funcione de inmediato, puede configurarlo en una variable de entorno permanente como esta:
c:\> setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since last ''Fast Startup'': {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated))"
entonces, puede hacerlo funcionar abriendo una cmd
ventana y haciendo:
c:\> %HardwareUpTime%
ACTUALIZAR:
Hoy descubrí que al usar la entrada anterior en el registro de eventos también se tendrá en cuenta el modo "Suspender" o suspender, por lo que la ejecución %HardwareUpTime%
le indicará el tiempo transcurrido desde que la PC reanudó el sueño si lo deja.
Por lo tanto, aquí está:
setx HardwareUptime "powershell.exe -nologo -command Write-Host $('Uptime since hardware boot: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -InstanceId 27 -Newest 1).TimeGenerated)); Write-Host $('Uptime since system resumed: {0:c}' -f ((Get-Date)- (Get-EventLog -LogName system -Source 'Microsoft-Windows-Power-Troubleshooter' -Newest 1).TimeGenerated));"
Modifiqué un poco el comando para que sea más explícito y darle dos piezas de información:
Tiempo transcurrido desde el inicio de Windows (ya sea después de un apagado híbrido, apagado completo o simple reinicio o hibernación).
Tiempo transcurrido desde que Windows reanudó la ejecución (después de regresar del modo de suspensión).
NOTA: Si el sistema no durmió en el medio, ambas veces serán las mismas.