Jadikan Penjadwal Tugas Windows mengingatkan saya jika gagal

65

Saya memiliki skrip otomatis yang menarik cadangan dari situs web saya ke komputer lokal saya. Script ini bisa gagal; begitu server saya mati, lain kali saya tidak sengaja memindahkan skrip saya.

Bagaimana cara membuat Penjadwal Tugas Windows memberi tahu saya bahwa skrip gagal (atau tidak berjalan / tidak ditemukan)?

Saya tidak peduli jika muncul prompt, email atau sesuatu yang muncul di desktop saya. Saya ingin diberi tahu jika terjadi kesalahan. Di server saya, crontab mengirimi saya email tentang kesalahan - yang sangat bagus. Saya ingin sesuatu seperti itu di komputer lokal windows 7 saya.

Eliran Malka
sumber
menemukan ID acara penjadwal tugas setidaknya mnaoumov.wordpress.com/2014/05/15/task-scheduler-event-ids

Jawaban:

87

Ketika tugas yang dijadwalkan gagal dimulai, suatu peristiwa ditulis ke log peristiwa TaskScheduler :

Catatan: Log Penjadwal Tugas terletak di (di bawah Alat Administratif)

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

masukkan deskripsi gambar di sini

Windows memungkinkan Anda memicu tugas yang dijadwalkan untuk memulai ketika berbagai peristiwa terjadi, misalnya:

  • waktu hari
  • startup sistem
  • login pengguna
  • event direkam dalam event log

Berbekal pengetahuan ini, Anda dapat membuat tugas terjadwal yang berjalan saat tugas terjadwal Anda gagal:

masukkan deskripsi gambar di sini

Dijadwalkan tugas ini ini tindakan kemudian dapat diatur untuk sesuatu yang mengirimkan peringatan - dalam pilihan Anda metode (misalnya memicu shutdown). Anda mungkin hanya ingin mengirim email:

masukkan deskripsi gambar di sini

Beginilah cara Windows menangani semuanya. Anda dapat melihat banyak tugas diagnostik yang memicu pada suatu peristiwa yang muncul di log. mis. ketika konflik alamat IP terdeteksi, suatu peristiwa ditulis ke log:

  • Log: Sistem
  • Sumber: Tcpip
  • ID Peristiwa: 4198

Tugas terjadwal memicu pada acara ini, dan menjalankan program untuk memberi tahu Anda tentang hal itu dan memperbaikinya. Ingatlah bahwa id acara tidak spesifik hanya untuk satu tugas. Tugas apa pun yang menghasilkan peristiwa 203 - Aksi gagal dimulai, akan memicu tugas ini.

Ian Boyd
sumber
2
Anda mendapatkan id acara dari log peristiwa (203 dan 103). Anda dapat melihat id acara di tangkapan layar (203 dan 103). Atau saya dapat memberi tahu Anda id acara: 203 dan 103.
Ian Boyd
5
Apa yang Anda lakukan jika tugas kedua gagal!?!?
William Jackson
3
@WilliamJackson Buat acara yang mematikan mesin. Seseorang pasti akan diberitahu masalah.
Ian Boyd
11
Sebenarnya jika tugas ke-2 gagal itu akan meluncurkan tugas ke-2 yang akan gagal yang akan meluncurkan tugas ke-2 yang akan gagal yang akan meluncurkan tugas ke-2 yang akan ... Anda mendapatkan ide. Saya baru saja menemukan ini dengan cara yang sulit = /
Rob Penridge
6
Ini tidak memperingatkan Anda jika tugas gagal , hanya jika gagal memulai . Tidak persis sama.
jwg
11

Ini adalah skrip saya untuk mengingatkan saya ketika pekerjaan cadangan saya memiliki nilai lebih dari 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 = "[email protected]"
    $Pass = ConvertTo-SecureString -String "myPassword" -AsPlainText -Force
    $Cred = New-Object System.Management.Automation.PSCredential $User, $Pass
################################################################################

$From = "Alert Scheduled Task <[email protected]>"
$To = "Me Gmail <[email protected]>"
$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
}
Hans Falk
sumber
Ini adalah opsi yang baik karena jawaban yang dipilih saat ini menggunakan fitur Windows yang sudah usang.
John Hargrove
Harap diingat, bahwa ini adalah solusi yang dibuat khusus untuk pengguna dengan Windows dalam bahasa Inggris. Argumen untuk ´findstr´ harus diubah sesuai dengan bahasa pengguna yang ditetapkan di Windows.
Eda190
7

Lihatlah PushMon . Anda dapat membuat URL PushMon yang akan dipanggil di akhir skrip Anda. Jika skrip Anda tidak berjalan karena server sedang down atau skrip dipindahkan, Anda akan diberi tahu. Anda dapat diberitahu melalui email, SMS, panggilan telepon, IM dan Twitter. Ini akan bekerja untuk semua sistem operasi. Ini seperti Pingdom tetapi untuk skrip dan tugas latar belakang.

Bienvenido David
sumber
1
Jika Anda menambahkannya di akhir skrip Anda, dan skrip tersebut tidak ada (misalnya dipindahkan), bagaimana seharusnya dipanggil it
Bob
3
Karena skrip dipindahkan dan URL tidak dipanggil, maka Anda akan mendapatkan lansiran.
Bienvenido David
1
Mencoba mengunjungi situs mereka; ironisnya, tampaknya turun ..
Isaac Kleinman