搜尋此網誌

2013/07/17

使用工作排程器,讓Windows備份執行完後,自動寄通知郵件

使用工作排程器,讓Windows備份執行完後,自動寄通知信

本文記錄了如何依Windows Event的事件記錄,來發送郵件及附上事件的內容。




首先,建立一個基本排程工作,指定「當記錄特定事件時」
以Windows backup為例,指定如下的記錄檔、來源及事件識別碼:

執行動作上,使用了Windows PowerShell:
PowerShell Script:
使用此Script要先安裝 .Net framework 3.51

   #抓取前2分的Event log,有關備份成功的訊息

   $start=(Get-Date).AddMinutes(-2)
   $end=Get-Date
   $mailbody1 = Get-WinEvent -FilterHashtable @{logname='Microsoft-Windows-Backup'; StartTime=$start; EndTime=$end; ID=4}
   
   $msg = "Time: " + ($mailbody1 | select -ExpandProperty TimeCreated).ToString() + "`r`n" +
          "Message: " + ($mailbody1 | select -ExpandProperty Message).ToString() + "`r`n" +
          "EventID: " + ($mailbody1 | select -ExpandProperty ID).ToString()

   $mail = New-Object System.Net.Mail.MailMessage
   
   $CompName = (Get-Content Env:\COMPUTERNAME).ToString()
   
   #寄件人email
   $mail.From = "WinBackup_info@" + $CompName + ".example.com"
   
   #收件人email,多收件人時分多行加入
   $mail.To.Add("user1@example.com")
   $mail.To.Add("user2@example.com ")
   
   #郵件標題
   $mail.Subject = $CompName + " Windows backup successfully"
   
   #郵件內文
   $mail.Body = $msg
   
   # create attachment / 插入附件
   #$att = New-Object System.Net.Mail.Attachment $logfile
   #$mail.Attachments.Add($att)
   
   #送郵件,要設定SNMP伺服器
   $smtp = New-Object System.Net.Mail.SmtpClient("192.168.0.221")
   $smtp.Send($mail)  


要執行此Script,需要在Windows PowerShell先下執行「set-executionpolicy remotesigned」

沒有留言: