Windows 8.1: Wie lässt sich die „tatsächliche“ Betriebszeit ermitteln?

Windows 8.1: Wie lässt sich die „tatsächliche“ Betriebszeit ermitteln?

Bitte lesen Sie sorgfältig durch. Dies ist keine übliche Frage zur Betriebszeit.

Ich neige dazu, nichtabschaltenmeinen Computer per se, sondern versetzen ihn in den Ruhezustand. Dadurch werden die Startzeiten schneller und ich kann WOL verwenden. Die verschiedenen „Uptime“-Methoden (sysinfo, uptime.exe, Task-Manager usw.) zeigen die Zeit seit dem letzten vollständigen Start an, was bedeutet, dass die Zeit im Ruhezustand berücksichtigt wird. Ich suche nachWAHRBetriebszeit; das heißt nur die Zeit seit dem letzten Start, die mein PC wach war.

Antwort1

Es gibt keine Software, die das kann. Sie können dies also nur tun, indem Sie ein Skript schreiben, das einer Variablen im Grunde jede Sekunde (oder Minute) +1 gibt und eine Möglichkeit hat, den Wert der Variablen zu lesen. Wenn sich Ihr PC im Ruhezustand/Schlafmodus/usw. befindet, wird das Skript nicht ausgeführt, sodass der Zähler nicht erhöht wird.

Wenn ein solches Skript ständig im Hintergrund ausgeführt wird, wird dies wahrscheinlich Auswirkungen auf das System haben. Die Frage ist also, wie sehr Sie dies wollen.

(Grund für die Auswirkung auf das Skript) Je länger das Skript ausgeführt wird, desto höher wird die Zahl, und ein sehr hoher Wert bedeutet, dass mehr Speicher zum Speichern benötigt wird. (Ich spreche von Werten, die keine ganzen Zahlen sein können (65535), aber ich nehme an, dass Ihr System bei einem so hohen Wert tage- oder wochenlang betriebsbereit sein muss. Natürlich könnten Sie Ihr Skript so schreiben, dass es die Tage zählt und den Wert zurücksetzt, wodurch dies vermieden würde, aber in diesem Fall durchläuft Ihr Skript in seinem Zyklus mehr Code, was sich ebenfalls darauf auswirkt, wenn auch nur geringfügig.

Antwort2

Windows generiert ein Systemereignis zum Aufwachen aus dem Ruhezustand (Ereignis-ID: 1, Quelle: Power-Troubleshooter). Dieses Ereignis enthält die Ruhe- und Aufwachzeiten.

Wake-Ereignis

Quelle:Wake Source – Ereignisanzeige-Protokoll lesen – Windows 7-Hilfeforen

Um Ihren „tatsächlichen Betriebszeit“-Wert zu ermitteln, ermitteln Sie die letzte Startzeit (aus den von Ihnen genannten Quellen) und ziehen Sie dann die Ruhezeit von allen nachfolgenden Aktivierungsereignissen ab.

Hinweis: Sie können mithilfe von .NET-Bibliotheken eine Anwendung zum Abfragen des Ereignisprotokolls erstellen (Off-Topic für Superuser).

Antwort3

Wie flexibel sind Sie in Ihrer Definition von „echter Betriebszeit“? Eine Variante vonAntwort von LPChip besteht darin, geplante Aufgaben zu schreiben, die durch die Sperre und Entsperrung der Arbeitsstation ausgelöst werden, und dann die offensichtlichen Berechnungen durchzuführen.

Und falls die Mathematik nicht offensichtlich ist:

  1. Behalten Sie zwei Werte im Auge: „logische“ Startzeit und kumulative Betriebszeit. Nur einer von beiden ist zu einem bestimmten Zeitpunkt gültig. Daher benötigen Sie wohl auch ein Flag, um zu verfolgen, welcher von beiden gültig ist, obwohl dies praktisch durch den Kontext bestimmt werden kann.
  2. Ich vermute, Sie möchten auch ein Ereignis, das beim Systemstart ausgeführt wird, oder einen anderen Mechanismus, um die „logische“ Startzeit auf die tatsächliche Startzeit zu initialisieren.
  3. Wenn die Arbeitsstation gesperrt ist, subtrahieren Sie die logische Startzeit von der aktuellen Zeit und speichern Sie diese als kumulative Betriebszeit.
  4. Wenn die Arbeitsstation entsperrt ist, ziehen Sie die kumulierte Betriebszeit von der aktuellen Zeit ab und speichern Sie diese als logische Startzeit.
  5. Auf Anfrage subtrahieren wir die logische Startzeit von der aktuellen Zeit und geben diese als „wahre“ Betriebszeit an. (So erhalten Sie die Gesamtzeit, in der der PC entsperrt war.)

So zum Beispiel

  1. Wenn Sie um 9 Uhr einen Hardboot durchführen, wird 9 Uhr als logische Bootzeit gespeichert.
  2. Wenn Sie die Maschine mittags sperren, sparen Sie 3 Stunden (12:00 – 9:00 Uhr) an kumulierter Betriebszeit.
  3. Wenn Sie die Maschine um 13:00 Uhr entsperren, wird 10:00 Uhr (13:00 Uhr – 3 Stunden) als logische Startzeit gespart.
  4. Wenn Sie die Betriebszeit um 18:00 Uhr anfordern, werden 8 Stunden gemeldet
    (18:00 – 10:00 Uhr = (12:00 – 9:00 Uhr) + (18:00 – 13:00 Uhr).)

Wenn Sie herausfinden können, wie Sie Aufgaben im Ruhezustand und beim Aufwachen auslösen, dann tun Sie das, und Sie erhalten genau das, was Sie wollten. (Aber wenn Sie die Maschine in den Ruhezustand versetzen, wird die Sperraufgabe ausgelöst, und ich gehe davon aus, dass Sie Ihr System so konfiguriert haben, dass nach dem Aufwachen eine Entsperrung erforderlich ist.)

verwandte Informationen