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

Laat Windows Taakplanner me waarschuwen als het mislukt

Ik heb een geautomatiseerd script dat back-ups van mijn website naar mijn lokale computer haalt. Dit script kan mislukken; een keer was mijn server down, een andere keer heb ik per ongeluk mijn script verplaatst.

Hoe zorg ik ervoor dat Windows Taakplanner mij vertelt wanneer het script mislukt (of niet wordt uitgevoerd/niet wordt gevonden)?

Het kan me niet schelen of er een prompt komt, een email of iets dat op mijn bureaublad verschijnt. Ik wil een melding krijgen als er iets fout gaat. Op mijn server, emailt crontab me over fouten - wat geweldig is. Ik wil zoiets ook op mijn windows 7 lokale computer.

Antwoorden (3)

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

Wanneer een geplande taak niet start, wordt een gebeurtenis naar het gebeurtenislogboek TaskScheduler geschreven:

Noot: Het logboek van TaakScheduler bevindt zich op (onder Beheerderstools)

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

Met Windows kun je geplande taken triggeren om te starten wanneer een verscheidenheid aan gebeurtenissen plaatsvindt, bijv:

  • tijdstip van de dag
  • opstarten van het systeem
  • inloggen van de gebruiker
  • gebeurtenis vastgelegd in gebeurtenissenlogboek

Gewapend met deze kennis, kun je een geplande taak maken die loopt als je geplande taak mislukt:

De actie van deze geplande taak kan dan ingesteld worden op iets dat je een waarschuwing stuurt - op een methode naar keuze (bv. een shutdown). Misschien wil je alleen een e-mail sturen:

Dit is hoe Windows alles afhandelt. Je ziet veel diagnostische taken die triggeren op een gebeurtenis die in het logboek verschijnt. b.v. wanneer een IP adres conflict wordt gedetecteerd, wordt een gebeurtenis naar het logboek geschreven:

  • Log: System
  • Source: Tcpip
  • Event ID: 4198

Een geplande taak triggert op deze gebeurtenis, en voert een programma uit om je er over te vertellen en het te verhelpen. Houd in gedachten dat de gebeurtenis-id niet specifiek is voor slechts één taak. Elke taak die de gebeurtenis 203 - Actie niet gestart genereert, zal deze taak triggeren.

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

Hier is mijn script om me te waarschuwen wanneer mijn backuptaak een grotere waarde heeft dan 0.

$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

Kijk eens naar PushMon . Je kunt een PushMon URL maken die aan het eind van je script wordt aangeroepen. Als je script niet loopt omdat de server plat lag of het script is verplaatst, krijg je een melding. Je kunt een melding krijgen via e-mail, SMS, telefoon, IM en Twitter. Dit werkt voor elk besturingssysteem. Dit is zoals Pingdom maar dan voor scripts en achtergrond taken.