在沒有第三方工具對網絡進行監控的話,要檢查網絡中某臺主機,或是某個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地址,如:
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。
可參考文章: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文件報告,併發郵件給管理員,郵件效果以下:
說明:你能夠自已設置計劃任務,每小時,或是天天執行,以方便及時瞭解網絡狀態!