Eventlog Watchdog Rechner automatisch neu starten bei Fehler


Tool um den Rechner bei einem Fehler im Eventlog neu zu starten


Kurze Beschreibung: wird ins Eventlog ein Fehler geschrieben, startet das Tool den Rechner neu.

Voraussetzungen:

Das Skript macht nur dann Sinn, wenn der PC im Normalbetrieb keine Fehler hat.
Hat der PC ständig Fehler im Eventlog, wird der PC ständig neu gestartet.
Im Falle eines Fehlers im Eventlog kann der Neustart noch abgebrochen werden, indem das Skript pausiert wird.

Warum das Ganze:

Der Grund warum ich das Skript geschrieben habe ist mein MediaPC ( Media Portal ):
Der PC ist normalerweise im Standbymodus und nimmt bei Bedarf Fernsehsendungen auf.
Ich hatte das Problem, dass nach ein paar Tagen, bzw. ab und zu beim Aufwachen aus dem Standby div. Fehler aufgetreten sind und der PC nicht mehr in der Lage war meine Sendungen aufzuzeichnen.
Der PC hat im Normalbetrieb keine Fehlermeldungen im Eventlog, außer es funktioniert etwas nicht mehr wie gewünscht.
Das Skript überwacht das Eventlog (Anwendung und System) und schaut standardmäßig jede Sekunde auf die letzten 2 Eventlogmeldungen:

Download

Findet es dort einen Fehler, wird der PC neu gestartet. 

Download

Ich hab das Skript im Autostart Ordner abgelegt, somit stelle ich sicher, dass das System immer in einem einwandfreien Zustand ist. (Wenn nicht wird der PC neu gestartet) 

Download


Falls der Computer ein Problem hat und somit bei jedem Startvorgang einen Error ins Eventlog schreibt, würde der PC ständig neu starten, um aus dieser Endlosschleife auszubrechen, beim Windowsstart die Umschalttaste gedrückt halten, dann wird der Autostartordner nicht ausgeführt.

Version History

03.12.2010 sleep 60000 beim starten hinzugefügt: Skript wartet 1 Minute bevor das Eventlog ausgelesen wird (verhindert ev. Endlos Bootschleifen)

 

Quellcode und Download

(kann angepasst und online auf dieser Seite kompiliert werden)


Der Download kann mit Hilfe des folgenden Quellcodes online generiert werden, dazu
den folgenden Code in den AutoIT Online Compiler kopieren und neu kompilieren:

#include <EventLog.au3>
#include <Date.au3>
#include <GUIConstants.au3>

$eintraege=2; wie viele Eventeinträge sollen ausgelesen werden
$timewait=1000; Zeit in Millisekunden zwischen Eventlog auslesen
$timewaitshutdown=10000; Zeit in Millisekunden bis der Rechner neu gestartet wird, wenn ein Fehler aufgetreten ist
$EventA=1; 1.. kontrolliert Eventlog Anwendung 0.. keine Kontrolle des Eventlog Anwendung
$EventS=1; 1.. kontrolliert Eventlog System 0.. keine Kontrolle des Eventlog System 
sleep(60000); 1 Minute warten, bevor das Eventlog das 1te mal ausgelesen wird (verhindert ev. Endlos Bootschleifen)

;Schleife Eventlog auslesen
Do
if $EventS=1 then $hEventLogS = _EventLog__Open("", "System")
if $EventA=1 then $hEventLogA = _EventLog__Open("", "Application")
$x=0
; Schleife um von einem Eventlogeintrag zum nächsten zu hüpfen
Do
if $EventS=1 then 
$aEventS = _EventLog__Read($hEventLogS, True, False) ; 
Else
dim $aEventS[9]
EndIf
if $EventA=1 then 
$aEventA = _EventLog__Read($hEventLogA, True, False) ; 
else
dim $aEventA[9]
endif
if $aEventS[8]="Error" then
TrayTip("starte den PC in " & $timewaitshutdown/1000  & " Sekunden neu", "AutoIT Watchdog hat einen Fehler im Eventlog festgestellt (System)", 5, 1)
sleep($timewaitshutdown)
Shutdown(6,"AutoitEventlog WatchDog Error in System")
EndIf
if $aEventA[8]="Error" then
TrayTip("starte den PC in " & $timewaitshutdown/1000  & " Sekunden neu", "AutoIT Watchdog hat einen Fehler im Eventlog festgestellt (Anwendung)", 5, 1)
sleep($timewaitshutdown)
Shutdown(6, "AutoitEventlog WatchDog Error in Application")
EndIf
$x=$x+1
Until $x>=$eintraege
sleep($timewait)
if $EventA=1 then _EventLog__Close($hEventLogA)
if $EventS=1 then _EventLog__Close($hEventLogS)
Until 1=2 ; unendliche Schleife 1 wird niemals 2 sein 

Zum Anpassen, vorher den Quellcode in die Zwischenablage speichern und weiter zum AutoIT OnlineCompiler

 

 

positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Bildschirmschoner deaktivieren Computer gesperrt verhindern

Bildschirmschoner deaktivieren Computer gesperrt verhindern

geändert: 05.06.2016 von Bernhard (Erstveröffentlichung: 21.06.2011)

Wenn der Administrator Einstellungen für die Sperre des Computers fixiert hat, kann diese mit folgendem Skript verhindert werden:Das Skript bewegt, solange es läuft, jede Minute ein wenig die Maus, somit wird der Bildschirmschoner nicht aktiv, bzw. der PC sperrt sich nicht mehr. ... weiterlesen

Preview free Autoit Online Compiler

free Autoit Online Compiler

geändert: 07.03.2022 von Bernhard (Erstveröffentlichung: 21.08.2012)

Auf dieser Seite kann der AutoIt-Source-Code in eine .exe Datei kompiliert werden. ... weiterlesen

Preview alles unattended installieren mit Makros in AutoIt 3

alles unattended installieren mit Makros in AutoIt 3

geändert: 05.06.2016 von Bernhard (Erstveröffentlichung: 21.08.2012)

Macros für das Automatisieren von Aufgaben sind meist nicht die richte Lösung. Eine Softwareinstallation sollte zum Beispiel immer mit den vom Hersteller bereitgestellten Möglichkeiten erfolgen, andere Automatisierungsaufgaben mit den vom Hersteller bereitgestellten APIs. ... weiterlesen


Fragen / Kommentare