Operating System

Powershell – Scheduled Task LastResult auslesen und Mail versenden

Wenn man nicht gerade einen SCOM oder sonstige Monitoring Software zum Überwachen zur Verfügung hat, kann man unter anderem via Powershell den Task Status auselesen.

Folgendes Script liest die Scheduled Tasks in einem “Task-Ornder” aus, prüft ob sie mit einem anderen LastTaskResult Code als 0x0 abgeschlossen haben, und sendet in diesem Falle eine Email.

Parameter in <> müssen angepasst werden. Funktioniert ab Windows Server 2012 und Windows 8

Get-ScheduledTask -TaskPath \<PATHANPASSEN>\ | Get-ScheduledTaskInfo | where {$_.NextRunTime -ge “01.01.1980”} | ForEach-Object {if ($_.LastTaskResult -ne “0”){Send-MailMessage -body $_.TaskName -SmtpServer <mail.server.local> -From <sender@domain.local> -To <recipient.domain.local> -Subject “<subject>”}}

 

Für Windows 7 und Windows Server 2008 muss zuerst das PowerShellPack installiert werden. Dieses findet man unter

http://blog.powershell.no/2012/05/28/working-with-scheduled-tasks-from-windows-powershell/

Danach lautet der Befehl hier wie folgt:

Parameter in <> müssen angepasst werden.

Get-ScheduledTask -folder <folder> | where {$_.Status -ne “Disabled” -and $_.Name -ne “_Scheduled-Task-Monitor”} | ForEach-Object {if ($_.LastTaskResult -ne “0”){Send-MailMessage -body $_.Name -SmtpServer <mail.server.local> -From <sender@domain.local> -To <recipient@domain.local> -Subject “<Subject>”}}