使用工作排程器,讓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」
留言