在Windows Server 2012的Task Scheduler裏面配置自動發送郵件

     最近在一臺server上配置了每一個週末備份數據庫的定時任務,想順手配置發送備份完成的郵件提醒我去Double Check一下備份結果。shell

悲劇地發現Send an email功能被新版的server給禁掉了。數據庫

只好另闢蹊徑,想到經過PowerShell腳原本發送也行,找到一個腳本:ui

############################################################################### ###########Define Variables######## $fromaddress = "donotreply@labtest.com" $toaddress = "Aishwarya.Rawat@labtest.com" $bccaddress = "Vikas.sukhija@labtest.com" $CCaddress = "Mahesh.Sharma@labtest.com" $Subject = "ACtion Required" $body = get-content .\content.htm $attachment = "C:\sendemail\test.txt" $smtpserver = "smtp.labtest.com" #################################### $message = new-object System.Net.Mail.MailMessage $message.From = $fromaddress $message.To.Add($toaddress) $message.CC.Add($CCaddress) $message.Bcc.Add($bccaddress) $message.IsBodyHtml = $True $message.Subject = $Subject $attach = new-object Net.Mail.Attachment($attachment) $message.Attachments.Add($attach) $message.body = $body $smtp = new-object Net.Mail.SmtpClient($smtpserver) $smtp.Send($message) #################################################################################

原文引自:Send HTML Email and attachment Powershellthis

而後,在Task Scheduler的任務裏面,最後的位置添加一個Action,設置以下:spa

Program:  C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe調試

Arguments: -command "& 'C:\SendEmailScript\SendMail.ps1'" rest

 

調試運行時發現仍是有問題,在PowerShell裏面運行,發現有錯誤日誌:日誌

xxx.ps1 cannot be loaded because the execution of scripts is disabled on this system.code

 

原來Windows 2012 Server 默認是關閉腳本執行的,須要本身手動打開:server

1. 以管理員身份運行PowerShell。

2. 檢查當前狀態:輸入 Get-ExecutionPolicy ,回車。 顯示: Restricted

3. 修改狀態:輸入 Set-ExecutionPolicy Unrestricted

4. 再次輸入 Get-ExecutionPolicy 檢查狀態應該顯示 Unrestricted

 

好了,至此,解決了!

相關文章
相關標籤/搜索