收集網絡狀態(Ping),並用郵件通知管理員

在沒有第三方工具對網絡進行監控的話,要檢查網絡中某臺主機,或是某個IP地址通信是否正常,咱們一般用手動PING來進行測試。shell

有了PowerShell,咱們能夠用他定時Ping網絡上的幾個IP地址,而後把ping的個延時時間用郵件通知給指定的一個或多個管理員。若是達到設定的警報值,則用不一樣的顏色來警示!服務器

此腳本是受TechNet腳本中心的收集硬盤空間報告啓發,自已修改、測試而來,通過個人環境中使用,效果不錯,現分享給你們!網絡

使用方法:併發

一、 下載附件腳本,修改腳本中如下內容:ide

1) 腳本設定的×××警告值爲Ping延時大於100ms時,紅色警告值爲此IP不通,即延時爲空小於0,若是要修改,請將如下值修改成你想要的:工具

$TimeWarning = 100;測試

$TimeCritcal = 0;rest

2) 修改收件人郵箱,即那我的或是那些人要收到通知郵件:blog

$users = 「 johnson@sysmicro.cn 「ip

若是須要給多個郵件人,請修改成:

$users = 「 johnson@sysmicro.cn 「,」sam@sysmicro.cn」

3) 修改IP列表、報告生成目錄

$reportPath = "D:\script\";

此處用爲存放生成的HTML報告文件,也建議將PS1文件也存於同一目錄。

$computers = Get-Content "IPlist.txt";

在此目錄建立一個IPlist.txt文件,請將測試的主機名或是IP地址埴到此文件中,一行一個服務器的主機名或是IP地址,若是是主機名,確保有你的DNS能正常解析出正確的IP地址,如:

clip_p_w_picpath001

4) 修改SMTP服務器及發件人郵件地址:

$smtpServer = "mail01.sysmicro.cn"

$smtp = New-Object Net.Mail.SmtpClient($smtpServer)

$msg = New-Object Net.Mail.MailMessage

$msg.To.Add($user)

$msg.From = "johnson@sysmicro.cn"

二、 在PowerShell中測試若是腳本不能執行,請修改腳本執行策略爲RemoteSigned,或是Unrestricted。

clip_p_w_picpath002

可參考文章:http://hubuxcg.blog.51cto.com/2559426/1309431#590523中第二步。

三、 建立計劃任務,讓腳本自動在指定時間運行!

Powershell–file」D:\Script\PingReport_51cto.ps1」

可參考文章:http://hubuxcg.blog.51cto.com/2559426/1309431#590523中第四步

設置好後,每次執行會在D:\Script下生成Html文件報告,併發郵件給管理員,郵件效果以下:

clip_p_w_picpath003

說明:你能夠自已設置計劃任務,每小時,或是天天執行,以方便及時瞭解網絡狀態!

相關文章
相關標籤/搜索