Vous voulez obtenir une solution prête à l'emploi pour connaître le temps de disponibilité de votre machine depuis le dernier arrêt hybride / démarrage rapide, n'est-ce pas?
Vous pouvez obtenir ces informations (fournies par @allquixotic) à partir de EventLog en utilisant PowerShell comme ceci:
PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))
Pour incorporer la commande powershell dans un script shell Windows, vous pouvez le faire à la place:
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))
Cependant, pour que cela fonctionne immédiatement, vous pouvez le définir dans une variable d'environnement permanente comme celle-ci à la place:
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))"
vous pouvez alors le faire fonctionner en ouvrant une cmd
fenêtre et en faisant:
c:\> %HardwareUpTime%
MISE À JOUR:
Je viens de découvrir aujourd'hui que l'utilisation de l'entrée ci-dessus dans le journal des événements prendra également en compte le mode "Veille" ou suspension, donc l'exécution %HardwareUpTime%
vous indiquera le temps écoulé depuis la reprise de veille du PC si vous le laissez faire.
Voilà donc:
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));"
J'ai un peu modifié la commande pour être plus explicite et vous donner les deux informations:
Temps écoulé depuis le démarrage de Windows (soit après un arrêt hybride, un arrêt complet ou un redémarrage simple ou une mise en veille prolongée).
Temps écoulé depuis la reprise de l'exécution de Windows (après son retour du mode veille).
REMARQUE: Si le système n'a pas dormi entre les deux, les deux heures seront identiques.