2011-02-22 21:15:46 +0000 2011-02-22 21:15:46 +0000
69
69

Windows Taskplaner bei Fehlschlag alarmieren lassen

Ich habe ein automatisiertes Skript, das Backups von meiner Website auf meinen lokalen Computer zieht. Dieses Skript kann fehlschlagen; einmal war mein Server ausgefallen, ein anderes Mal habe ich das Skript versehentlich verschoben.

Wie bringe ich den Windows Taskplaner dazu, mich zu informieren, wenn das Skript fehlschlägt (oder nicht ausgeführt/nicht gefunden wird)?

Es ist mir egal, ob eine Eingabeaufforderung erscheint, eine E-Mail oder etwas, das auf meinem Desktop erscheint. Ich möchte benachrichtigt werden, wenn etwas schief läuft. Auf meinem Server benachrichtigt mich crontab per E-Mail über Fehler - was großartig ist. Ich möchte so etwas auch auf meinem lokalen Windows 7-Computer haben.

Antworten (3)

89
89
89
2011-02-22 22:13:57 +0000

Wenn eine geplante Aufgabe nicht gestartet werden kann, wird ein Ereignis in das Ereignisprotokoll TaskScheduler geschrieben:

Hinweis: Das Ereignisprotokoll des Aufgabenplaners befindet sich unter (unter Verwaltung)

Computer Management
    System Tools
       Event Viewer
          Application and Services Logs
             Microsoft
                Windows
                   Task Scheduler
                      Operational

Windows ermöglicht es Ihnen, geplante Aufgaben zu starten, wenn eine Vielzahl von Ereignissen eintritt, z. B.:

  • Tageszeit
  • Systemstart
  • Benutzeranmeldung
  • Ereignis im Ereignisprotokoll

Mit diesem Wissen bewaffnet, können Sie eine geplante Aufgabe erstellen, die ausgeführt wird, wenn Ihre geplante Aufgabe ausfällt:

Die Aktion dieses geplanten Tasks kann dann auf etwas gesetzt werden, das Ihnen eine Warnung sendet - mit Methoden Ihrer Wahl (z. B. Auslösen eines Herunterfahrens). Vielleicht möchten Sie auch nur eine E-Mail senden:

Das ist die Art und Weise, wie Windows alles handhabt. Sie können viele Diagnoseaufgaben sehen, die auf ein Ereignis hin ausgelöst werden, das im Protokoll erscheint. z. B. wenn ein IP-Adresskonflikt erkannt wird, wird ein Ereignis in das Protokoll geschrieben:

  • Protokoll: System
  • Quelle: Tcpip
  • Ereignis-ID: 4198

Eine geplante Aufgabe wird bei diesem Ereignis ausgelöst und führt ein Programm aus, das Sie über das Problem informiert und es behebt. Beachten Sie, dass die Ereignis-ID nicht spezifisch für nur eine Aufgabe ist. Jede Aufgabe, die das Ereignis 203 - Action failed to start erzeugt, löst diese Aufgabe aus.

14
14
14
2016-01-15 20:59:39 +0000

Hier ist mein Skript, das mich warnt, wenn mein Sicherungsauftrag einen größeren Wert als 0 hat.

$ScheduledTaskName = "Hans\Backup"
$Result = (schtasks /query /FO LIST /V /TN $ScheduledTaskName | findstr "Result")
$Result = $Result.substring(12)
$Code = $Result.trim()

If ($Code -gt 0) {
    $User = "mymail@gmail.com"
    $Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential $User, $Pass
################################################################################

$From = "Alert Scheduled Task <mymail@gmail.com>"
$To = "Me Gmail <mymail@gmail.com>"
$Subject = "Scheduled task 'Backup' failed"
$Body = "Error code: $Code"
$SMTPServer = "smtp.gmail.com"
$SMTPPort = "587"

Send-MailMessage -From $From -to $To -Subject $Subject `
-Body $Body -SmtpServer $SMTPServer -port $SMTPPort -UseSsl `
-Credential $Cred
}
7
7
7
2012-06-01 13:42:17 +0000

Schauen Sie sich PushMon an. Sie können eine PushMon URL erstellen, die am Ende Ihres Skripts aufgerufen wird. Wenn Ihr Skript nicht ausgeführt wird, weil der Server ausgefallen ist oder das Skript verschoben wurde, werden Sie benachrichtigt. Sie können per E-Mail, SMS, Telefonanruf, IM und Twitter benachrichtigt werden. Dies funktioniert für jedes Betriebssystem. Dies ist wie Pingdom, aber für Skripte und Hintergrundaufgaben.