最後のハイブリッドシャットダウン/高速起動が行われてからのマシンの稼働時間を調べるための、すぐに使えるソリューションを入手したいですか?
次のようなPowerShellを使用して、EventLogからこの情報(@allquixoticによって提供される)を取得できます。
PS c:\> Write-Host $("{0:c}" -f ((Get-Date)- (Get-EventLog -LogName system -Source "Microsoft-Windows-Power-Troubleshooter" -Newest 1).TimeGenerated))
powershellコマンドをWindowsシェルスクリプトに埋め込むには、次のようにします。
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))
ハバーバー、これをそのまま使用できるようにするには、代わりに次のように永続的な環境変数に設定します。
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))"
そのため、cmd
ウィンドウを開いて次のようにすることで機能させることができます。
c:\> %HardwareUpTime%
更新:
イベントログで上記のエントリを使用すると、「スリープ」またはサスペンドモードも考慮されるため、実行%HardwareUpTime%
すると、PCがスリープ状態から再開してからの経過時間がわかります。
したがって、ここにあります:
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));"
コマンドを少し明示的にして、両方の情報を提供しました。
注:システムがその間にスリープしなかった場合、両方の時間は同じになります。