Windows Betriebszeit bestimmen

  • Frage

  • Franklyn321
  • 3805 Aufrufe 10 Antworten

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Windows Betriebszeit bestimmen

    Hallo an alle Experten!

    Ich brauche dringend eure Hilfe! Wie kann ich die Betriebszeit des PC (windows xp) über einen längeren Zeitraum ermitteln. Dabei müsste eben jede session mitprotokolliert werden und in eine txt-Datei gespeichert werden.:confused:

    Bitte um Hilfe!


    lg
    franklyn321
  • Hi - denke mal das du dafür die Ereignisanzeige in der Windows Verwaltung benutzen kannst. Diese kann man als Textfile speichern und filtern mit der Ereignisnummer. Machte hierüber mal meine Arbeitszeiterfassung.

    Grüße Bärbel
    [FONT="Garamond"]Suche die Fehler erst dann bei anderen, wenn du deine eigenen gefunden hast![/FONT]
  • baerbelmm schrieb:

    Hi - denke mal das du dafür die Ereignisanzeige in der Windows Verwaltung benutzen kannst. Diese kann man als Textfile speichern und filtern mit der Ereignisnummer. Machte hierüber mal meine Arbeitszeiterfassung.

    Grüße Bärbel


    Danke für deine Antwort!

    Leider kann ich das nicht brauchen, da hier zwar jeder Pfurtz aufgezeichnet wird aber nicht die gesamte Betriebszeit des PC. Es muss kein Ereignis bekannt sein. Ich brauche diese Auswertung für ein Energieoptimierungskonzept für über 150 PC. Dabei soll das Nutzerverhalten festgestellt werden (wie lange eingeschaltet und wie lange ausgeschaltet)

    Weiß den niemand wie man die Betriebszeit des PC (Einschaltzeit - Ausschaltzeit - Datum) über einen längeren Zeitraum (ein Monat) aufzeichnen kann (als txt oder so).

    Wäre wirklich wichtig!
  • frag mal einen Programmer, ob er ein Tool schreiben kann, was einfach beim Systemstart geladen wird und dann einfach im Hintergrund auf das Runterfahren warted ...

    wenn so was sauber geschrieben ist, sollte es auch keine CPU last erzeugen...

    und da es nur eine Logfile anlegt, sollte das auch mit unter 50 Zeilen Code gehen ...

    mfg
    zeilant
    zeilant
  • Hallo Franklyn321!

    Starte erstmal die Gruppenrichtlinie. (C:\WINDOWS\system32\gpedit.msc). Hier gehst du zu

    Richtlinien für Lokaler Computer > Benutzerkonfiguration > Windows-Einstellungen > Skripts (Anmelden/Abmelden)

    (Alternativ statt Benutzerkonfiguration auch Computerkonfiguration)

    Rechts hast du zwei Einträge: Anmelden und Abmelden. Beginnen wir mit der Anmeldung. Mit Doppelklick das Dialogfenster öffnen. Unten klickst du auf Dateien anzeigen.... Der Ordner C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logon wird geöffnet. Hier legst du eine neue .vbs-Datei (Visual Basic Script) an, mit folgendem Inhalt:

    Quellcode

    1. Set Argumente = WScript.Arguments
    2. If Argumente.Count = 0 Then
    3. MsgBox "Es ist ein Fehler bei der Parameterübergabe aufgetreten!", vbOKOnly + vbCritical, "Windows Betriebszeitmessung"
    4. WScript.Quit
    5. End If
    6. Parameter = Argumente(0)
    7. Set WSHShell = CreateObject("WScript.Shell")
    8. Set fs = CreateObject("Scripting.FileSystemObject")
    9. Set Logbuch = fs.OpenTextFile("C:\EinVerzeichnis\LogOnOff.csv", 8, true)
    10. Logbuch.WriteLine Parameter & ";" & DateValue(Now) & ";" & TimeValue(Now)
    11. Logbuch.Close
    Alles anzeigen


    Nennen wir die Datei LogOnOff.vbs. Achte darauf, dass du kein .txt an den Dateinamen anhängst. Den Explorer kannst du wieder schließen. Im Dialogfeld zurück, klickst du auf Hinzufügen und wählst mit Durchsuchen die LogOnOff.vbs aus. Unten als Skriptparameter schreibst du z. B. rein Logon. Mit 2 Mal OK die Dialogfenster schließen.

    Jetzt machen wir das gleiche fürs Abmelden:
    • In der Gruppenrichtlinie auf Abmelden doppelklicken
    • Dateien anzeigen... wählen um den Explorer im Ordner C:\WINDOWS\System32\GroupPolicy\User\Scripts\Logoff zu öffnen
    • In den Ordner C:\...\User\Scripts\Logon wechseln um die selbe Datei LogOnOff.vbs von vorhin hierher in den Logoff-Ordner zu kopieren (Du hast also 2 Mal die selbe Datei)
    • Explorer schließen
    • Im Dialogfeld auf Hinzufügen klicken
    • Skriptname: Auf Durchsuchen klicken und die neu kopierte Datei auswählen
    • Als Skriptparameter diesmal Logoff eingeben
    • Mit 2 Mal OK die Dialogfenster schließen
    • Gruppenrichtlinie schließen


    Was hast du davon?

    Das Ergebnis ist eine .csv-Datei im Ordner "C:\EinVerzeichnis\", die so aussieht:

    Quellcode

    1. Logon;23.02.2008;08:02:43
    2. Logoff;23.02.2008;18:10:06
    3. Logon;24.02.2008;08:00:15
    4. Logoff;24.02.2008;18:01:58


    Diese Datei kannst du in Excel nach allen möglichen Kriterien auswerten, aber das besprechen wir dann bei Bedarf im Excel-Forum, wenn es soweit ist. ;)

    Wenn dir das Ergebnis zusagt, gehe ich mit dir bei Unklarheiten alles Schritt für Schritt durch.

    Das alles ließe sich alternativ auch ohne Gruppenrichtlinie, bspw. auf XP Home Edition, mit Hilfe der Tasks realisieren. Ich finde es so aber besser, da man u. A. nicht auf den Dienst Taskplaner angewiesen ist.

    @zeilant
    Diese Vorgehensweise ist nur während der An- und Abmeldung aktiv, verbraucht somit keine Ressourcen während dem Betrieb. Und es sind auch nur 11 Zeilen Code. ;)

    Gruß

    FeliX_22
  • es geht auch so:D

    Sie wollen wissen, wie lange Ihr Computer schon läuft? Windows protokolliert im Hintergrung die Betriebszeiten des Computers mit. Allerdings ist diese Informationen gut versteckt. So finden Sie sie:

    1.
    Klicken Sie auf "Start" und anschliessend mit der rechten Maustaste auf den Eintrag "Arbeitsplatz".

    2.
    Wählen Sie im aufklappenden Kontextmenü "Verwalten".

    3.
    Sie sehen jetzt das Dialogfenster "Computerverwaltung" vor sich. Klicken Sie in der linken Fensterhälfte auf den Ordner "Ereignisanzeige".

    4.
    Im rechten Fensterhälfte stehen jetzt die drei Einträge "Anwendung", "Sicherheit" und "System". Klicken Sie doppelt auf "System"

    5.
    Windows zeichnet alles auf, was Sie am Computer tun. Zuständig Dafür ist der "Ereignis-Protokolldienst". Dieses Program startet automatisch, wenn Windows hochgefahren wird. Um die Betriebszeit abzulesen, müssen Sie wissen, dass dieser Protokolldienst die Ereignisnummer "6005" (Start) beziehungsweise "6006" (Ende) benutzt. Suchen diese beide Kennziffern.

    läßt sich unter Ansicht---Filter einstellen:D

    6.
    Unter "Datum" und "Uhrzeit" lesen Sie ab, wann der Windows-Protokolldienst an einem bestimmten Tag gestartet oder beendet wurde. Da diese Dienst unmittelbar nach Windows hochgefahren wird, entsprechen die Angaben richtet genau der Arbeitszeit des Systems.

    hoffe es hilft etwas weiter,tja manches ist in windows schon eingebaut:D

    gruß wakiya:drum:
  • Hallo!

    Stimmt, das ist ja viel einfacher. Du brauchst nur nachdem du den Filter auf 6005 gesetzt hast Aktion > Liste exportieren.. zu wählen und als txt zu speichern. Dann das gleiche mit dem Filter auf 6006 und exportieren. Den Inhalt beider Dateien fügst du in Excel ein, entfernst die unnötigen Spalten und setzt in jede Zeile ein Logon oder Logoff ein.

    Du darfst aber nicht vergessen diesen Vorgang alle 7 Tage zu wiederholen. Oder du setzt unter Aktion > Eigenschaften die Option Ereignisse nie überschreiben!!!

    Eine Vereinfachung noch: Da du das Ganze mit Excel weiter bearbeiten kannst / musst, brauchst du nicht jedesmal die Filter zu setzen.

    • Kopier einfach die ganze Liste in Excel rein.
    • Die unnötigen Spalten kannst du löschen, du hast also nur die Spalten A Datum, B Uhrzeit und C Ereignis.
    • In einer weiteren Spalte D schreibst du rein:
      =WENN(C2=6005;"Logon";WENN(C2=6006;"Logoff";"kill")) und kopierst diese Formel von D2 runter.
    • Jetzt steht in D entweder Logon, Logoff oder kill.
    • Markiere Spalte D
    • Suchen nach: kill
    • Suchen in: Werte
    • Alle suchen
    • Mit Strg+A werden alle Zellen markiert, die dich nicht interessieren
    • Jetzt nur noch auf Bearbeiten > Zellen löschen bzw. Start > Zellen > Löschen > Blattzeilen löschen klicken und das wars.


    Das ist auch besser so, da hier schon die Ereignisse chronologisch sortiert sind. Würdest du mit dem Ereignisfilter arbeiten, hättest du einen Bereich mit Logons und einen mit Logoffs, aber auch die könntest du einfach nach Datum und Uhrzeit sortieren. Mit Excel kann man jede Menge anstellen :D

    Nachdem ich das jetzt geschrieben habe finde ich die Methode über die Gruppenrichtlinie doch besser, weil du bedenken musst, dass du bei neuen Daten nicht die bestehenden in deinem Arbeitsblatt überschreibst, oder du legst für jeden Monat ein neues Blatt an, aber das musst du selbst entscheiden, was einfacher für dich ist.

    Gruß

    FeliX_22
  • Hallo Felix_22, hallo wakiya!

    Vielen Dank für eure Hilfe!

    @Felix_22: Ich verwende schon dein Script, das finde ich super.

    Leider ist aber oft so, das der PC in den Standby - Modus wechselt, dieser aber nicht differenziert wird. Der Rechner braucht in diesem Zustand nur ein zehntel der Leistung gegenüber Normalbetrieb.

    Besteht vielleicht auch die Möglichkeit, einen StandBy-Betrieb zu dokumentieren??

    PS.: das Script ist echt super!

    lg
    FRanklyn
  • Hallo Franklyn321!

    Freut mich, dass ich dir helfen konnte. :D

    Und kann:

    • Starte die Lokalen Sicherheitseinstellungen mit C:\Windows\system32\secpol.msc /s
    • Wechsel in den Pfad Lokale Richtlinien > Überwachungsrichtlinie. Rechts wählst du Prozessverfolgung überwachen und aktiviert das Häckchen vor Erfolgreich.
    • Schließe die Lokalen Sicherheitseinstellungen.
    • Wechsel in den Standby-Modus und kehre wieder zurück.
    • Öffne wieder die Ereignisanzeige und gehe diesmal nicht zum Systemprotokoll, sondern zur Sicherheit. Dich interessieren hier nur 2 Einträge:

    Als du in den Standby-Modus gewechselt hast, wurde das Ereignis 592 eingetragen, bei der Rückkehr das Ereignis 593. Solltest du mehrere solcher Einträge finden (was ich bezweifle), dann achte auf die Einträge mit der Datei C:\WINDOWS\system32\logonui.exe (Deshalb diese Datei, weil du die Möglichkeit hast, bei der Rückkehr zur Passwortaufforderung zurückzukehren).

    Ich gehe nicht weiter darauf ein, was man mit den IDs machen kann, das wurde weiter oben schon erläutert.

    Ich weiß nur nicht wie ressourcenlastig die Einstellung ist, dass die Prozessverfolgung überwacht wird.

    Hoffe das hilft dir weiter.

    Gruß

    FeliX_22