Você deseja obter uma solução imediata para descobrir o tempo de funcionamento da sua máquina desde o último desligamento / inicialização rápida híbridos, certo?
Você pode obter essas informações (conforme fornecidas por @allquixotic) no EventLog usando o PowerShell da seguinte forma:
PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))
Para incorporar o comando powershell a um shell script do Windows, você pode fazer isso:
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 fazer isso funcionar, você pode configurá-lo em uma variável de ambiente 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))"
Então, você pode fazê-lo funcionar abrindo uma janela cmd
e fazendo:
c:\> %HardwareUpTime%
ATUALIZAÇÃO:
Acabei de descobrir que usar a entrada acima no log de eventos também levará em conta o modo "Suspender" ou suspender, portanto, executar %HardwareUpTime%
informará o tempo decorrido desde que o computador voltou a adormecer se você permitir então.
Portanto, aqui 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));"
Modifiquei o comando um pouco para ser mais explícito e forneço as duas informações:
-
Tempo decorrido desde o arranque do Windows (após um encerramento híbrido, encerramento completo ou simples reinicialização ou hibernação).
-
Tempo decorrido desde que o Windows reiniciou a execução (após retornar do modo de suspensão).
OBSERVAÇÃO: Se o sistema não dormir no meio, os dois horários serão os mesmos.