Windows 8が誤った稼働時間を報告する(おそらく、ハイブリッドブートの総稼働時間)


10

間違った稼働時間

写真に示されている稼働時間は、6日、1時間、34分、22秒です。約7分前にこのノートパソコンの電源を入れました。

実際、Windows 8はハイブリッドブートモードでの合計稼働時間を報告しているように思います。どうすれば実際の稼働時間を取得できますか?また、なぜWindowsはそのように報告するのですか?

GUIの方法で実際の稼働時間を取得する方法はありますか(n00bの友人向け)??


更新:ハイブリッドブートを無効にして再起動しました。これにより、適切な稼働時間が得られます。また、で完全にシャットダウンすることshutdown /s /t 0もできます。

もう少し説明、私の質問は、ハイブリッドブートが有効になっている場合でも、実際の稼働時間(システムの電源を入れてからの時間)を取得する方法ですか?必要ではありませんが、おそらく外部プログラムなしで在庫のWindowsにあります。


これについての説明は?


1
「リアルタイム」とはどういう意味ですか?7分前に正確に何をしましたか?
David Schwartz

実稼働時間とは、システムの電源を入れてからの実際の時間を意味します。(それは私が7分前にやったことです、ラップトップをオンにしてください!)
Akshat Mittal 2013

8
稼働時間の従来の定義は、カーネルがそれ自体を初期化してからコンピュータが実行されている時間です。ハイブリッドブートはサスペンドの特別なタイプに過ぎないため(以前はRAMとHibernateにサスペンドされていました)、Windowsカーネルの同じインスタンスが使用されるため、「シャットダウン」としてカウントされません。
allquixotic

@allquixotic True、だからこそ、ハイブリッドブートのアップタイムになると思った。
Akshat Mittal 2013

あなたは実際に質問を得られなかったと思います。ハイブリッドブートが有効になっている場合でも、実際の稼働時間を取得する方法を教えてください。質問を更新しています。
Akshat Mittal 2013

回答:


5

最後のハイブリッドシャットダウン/高速起動が行われてからのマシンの稼働時間を調べるための、すぐに使えるソリューションを入手したいですか?

次のような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));"

コマンドを少し明示的にして、両方の情報を提供しました。

  • Windowsが起動してからの経過時間(ハイブリッドシャットダウン、完全シャットダウン、または単純な再起動または休止状態のいずれかの後)。

  • Windowsが実行を再開してからの経過時間(スリープモードからの復帰後)。

注:システムがその間にスリープしなかった場合、両方の時間は同じになります。


これはいい解決策のようです。
Akshat Mittal

4

ここから撮影:

Windowsイベントログを確認します。

  1. Windows Key+を押すr

  2. ボックスに入力し、 %windir%\system32\eventvwr.msc /s

  3. 右側の[カスタムビューの作成...]をクリックします。

  4. 次のように設定します。 パワートラブルシューター

  5. OKをクリックします

  6. プロンプトが表示されたら、カスタムビューに名前を付けます(任意の名前にすることができます)。

  7. 再開時間のリストを表示します


わかりました。それはいくらか欲しいです。私がn00bの場合はどうなりますか?そのちょうど適切ではありません。また、現在の時間からマイナスする必要があるアップタイムのために、それは最後の再開時間をもたらします。おそらくコマンドラインで、アップタイムのための直接的な方法はありますか?私は投票していますが、受け入れません。
Akshat Mittal 2013

このAFAIKにはシュリンクラップソリューションはありません。あなたはプログラムを書かなければならないでしょう。多分は....
allquixotic

はい、多分後で試してみます。
Akshat Mittal 2013

1

ハイブリッドブートを無効にして再起動する必要があります。適切な稼働時間を表示する必要があります。また、で完全にシャットダウンすることshutdown /s /t 0もできます。


これは、まさにUpdateで
Akshat Mittal 2013

@AkshatMittalはい、そうですが、回答を受け入れたいと思いました:)
Kruug

いいえ。-_-問題は、「GUI形式でリアルタイムの稼働時間を取得する方法」です。
Akshat Mittal 2013

さて、まずHybrid-Boot、カーネルが初期化された時間から稼働時間のカウントが始まるので、無効にする必要があります。それが唯一の方法です。
Kruug 2013年

唯一の方法ですよね?
Akshat Mittal 2013

0

これは、を使用すると、古いバージョン(XP、Vista、7)でも発生しますhibernation。時間をリセットするのは、を実行したときだけですfull bootが、Win8の高速起動は、完全な起動ではなくなりました。これは、ユーザーのログオフとハイバネーションの組み合わせです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.