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

Fare in modo che Windows Task Scheduler mi avvisi quando fallisce

Ho uno script automatico che estrae i backup dal mio sito web al mio computer locale. Questo script potrebbe fallire; una volta il mio server era giù, un'altra volta ho accidentalmente spostato lo script.

Come posso fare in modo che Windows Task Scheduler mi dica se lo script fallisce (o non viene eseguito/non viene trovato)?

Non mi interessa se viene fuori un prompt, un'email o qualcosa che appare sul mio desktop. Voglio essere avvisato se qualcosa va storto. Sul mio server, crontab mi manda un'email sugli errori - il che è fantastico. Voglio qualcosa del genere sul mio computer locale con Windows 7.

Risposte (3)

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

Quando un'attività pianificata non riesce ad avviarsi, un evento viene scritto nel registro eventi TaskScheduler:

Nota: Il registro di TaskScheduler si trova a (sotto Administrative Tools)

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

Windows ti permette di trigger i compiti programmati per avviarli quando si verificano una varietà di eventi, ad esempio

  • ora del giorno
  • avvio del sistema
  • login dell'utente
  • evento registrato nel registro eventi

Armati di questa conoscenza, potete creare un compito programmato che venga eseguito quando il vostro compito programmato fallisce:

L’azione di questo task programmato può essere impostata su qualcosa che vi invii un avviso - con metodi a vostra scelta (ad esempio, innesca uno spegnimento). Potreste semplicemente volere che invii un'e-mail:

Questo è il modo in cui Windows gestisce tutto. Puoi vedere molti compiti diagnostici che si innescano su un evento che appare nel log. Ad esempio, quando viene rilevato un conflitto di indirizzi IP, viene scritto un evento nel log:

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

Un task pianificato si innesca su questo evento, ed esegue un programma per informarti e risolvere il problema. Tenete a mente che l'id dell'evento non è specifico di un solo compito. Qualsiasi compito che genera l'evento 203 - Action failed to start, attiverà questo compito.

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

Ecco il mio script per avvisarmi quando il mio lavoro di backup ha un valore maggiore di 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

Date un'occhiata a PushMon . Puoi creare un URL PushMon che sarà chiamato alla fine del tuo script. Se il tuo script non viene eseguito perché il server era giù o lo script è stato spostato, riceverai una notifica. È possibile ricevere una notifica via e-mail, SMS, telefonata, IM e Twitter. Questo funzionerà per qualsiasi sistema operativo. Questo è come Pingdom ma per gli script e le attività in background.