Windows Görev Zamanlayıcısı'nın başarısız olduğumda beni uyarması


65

Web sitemden yerel bilgisayarıma yedekleri çeken otomatik bir komut dosyası var. Bu komut dosyası başarısız olabilir; Sunucum kapatıldığında, başka bir zaman yanlışlıkla komut dosyasını değiştirdim.

Windows Görev Zamanlayıcısı'nın bana komut dosyası başarısız olduğunda (veya çalışmaz / bulunmadığını) bildirmesini nasıl sağlarım?

Bir istemin ortaya çıkması, bir e-posta veya masaüstümde görünen bir şey olması umrumda değil. Bir şeyler ters giderse haberdar olmak istiyorum. Sunucumda crontab bana hatalar hakkında e-posta atıyor - bu harika. Windows 7 yerel bilgisayarımda böyle bir şey istiyorum.


görev zamanlayıcı olay kimliklerini en azından mnaoumov.wordpress.com/2014/05/15/task-scheduler-event-ids buldu

Yanıtlar:


87

Zamanlanmış bir görev başlatılamadığında, TaskScheduler olay günlüğüne bir olay yazılır :

Not: Görev Zamanlayıcı günlüğü konumunda (Yönetimsel Araçlar altında) bulunur.

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

görüntü tanımını buraya girin

Windows sağlayan tetikleyen olaylar, çeşitli örneğin gerçekleştiğinde başlatmak için zamanlanmış görevler:

  • günün zamanı
  • sistem başlangıcı
  • Kullanıcı Girişi
  • olay günlüğüne kaydedilen olay

Bu bilgiyle donanmış olarak, zamanlanmış göreviniz başarısız olduğunda çalışan bir zamanlanmış görev oluşturabilirsiniz:

görüntü tanımını buraya girin

Bu zamanlanmış görevin eylemi , daha sonra, seçtiğiniz yöntemlerde (örneğin, bir kapanmayı tetikler) sizi uyaran bir şeye ayarlanabilir. Sadece bir e-posta göndermesini isteyebilirsiniz:

görüntü tanımını buraya girin

Windows her şeyi böyle idare ediyor. Günlükte görünen bir olayı tetikleyen birçok tanılama görevi görebilirsiniz. örneğin, bir IP adresi çakışması tespit edildiğinde, günlüğe bir olay yazılır:

  • Günlük: Sistem
  • Kaynak: Tcpip
  • Olay Kimliği: 4198

Zamanlanmış bir görev bu olayı tetikler ve size bunu anlatmak ve düzeltmek için bir program çalıştırır. Etkinlik kimliğinin yalnızca bir göreve özgü olmadığını unutmayın. Olayı oluşturan herhangi bir görev 203 - İşlem başlatılamadı, bu görevi tetikleyecektir.


2
Olay kimliğini olay günlüğünden (203 ve 103) alırsınız . Etkinlik kimliğini ekran görüntüsünde (203 ve 103) görebilirsiniz. Ya sana olay kimliklerini söyleyebilir: 203 ve 103
Ian Boyd

5
İkinci görev başarısız olursa ne yaparsınız?
William Jackson

3
@WilliamJackson Makineyi kapatan bir etkinlik oluşturun. Birisi kesinlikle bir problem hakkında uyarılacaktır.
Ian Boyd

11
Aslında, 2. görev başarısız olursa, başarısız olacak 2. görevi başlatacak olan 2. görevi başlatacak olan 2. görevini başlatacak ... ki bu fikir ... anlayacaksınız. Bunu zor yoldan öğrendim = /
Rob Penridge

6
Bir görev başarısız olursa , yalnızca başlayamazsa bu sizi uyarmaz . Tam olarak aynı şey değil.
jwg

11

İşte yedekleme işim 0'dan büyük bir değerde olduğunda beni uyaracak betiğim.

$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
}

Geçerli seçili cevap kullanımdan kaldırılmış bir Windows özelliğini kullandığından, bu iyi bir seçenektir.
John Hargrove

Lütfen bunun İngilizce dilinde Windows kullanıcıları için hazırlanmış bir çözüm olduğunu unutmayın. '' Bulunacak '' argümanı, kullanıcının Windows'ta ayarladığı dile göre değiştirilmelidir.
Eda190

7

PushMon'a bir göz atın . Komut dosyanızın sonunda çağrılacak bir PushMon URL'si oluşturabilirsiniz. Komut dosyanız sunucu kapalı olduğundan veya komut dosyası taşındığı için çalışmazsa, bildirim alırsınız. E-posta, SMS, telefon görüşmesi, IM ve Twitter ile haberdar olabilirsiniz. Bu herhangi bir işletim sistemi için çalışacak. Bu Pingdom'a benzer, ancak komut dosyaları ve arka plan görevleri için.


1
Komut dosyanızı sonuna eklerseniz ve komut dosyası eksikse (örneğin, taşındıysa), nasıl çağırılması gerekiyor?
Bob

3
Komut dosyası taşındığından ve URL çağrılmadığından, bir uyarı alırsınız.
Bienvenido David

1
Sitelerini ziyaret etmeye çalışmak; ironik olarak, aşağı görünüyor ..
Isaac Kleinman
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.