收集⽹络状态(Ping),并⽤邮件通知管理员
在没有第三⽅⼯具对⽹络进⾏监控的话,要检查⽹络中某台主机,或是某个IP地址通讯是否正常,我们通常⽤⼿动PING来进⾏测试。
有了PowerShell,我们可以⽤他定时Ping⽹络上的⼏个IP地址,然后把ping的个延时时间⽤邮件通知给指定的⼀个或多个管理员。如果达到设定的警报值,则⽤不同的颜⾊来警⽰!
此脚本是受TechNet脚本中⼼的收集硬盘空间报告启发,⾃已修改、测试⽽来,经过我的环境中使⽤,效果不错,现分享给⼤家!
使⽤⽅法:
1、 下载附件脚本,修改脚本中以下内容:
1) 脚本设定的×××警告值为Ping延时⼤于100ms时,红⾊警告值为此IP不通,即延时为空⼩于0,如果要修改,请将以下值修改为你想要的:
$TimeWarning = 100;
$TimeCritcal = 0;
2) 修改收件⼈邮箱,即那个⼈或是那些⼈要收到通知邮件:
$users = “ johnson@sysmicro “
如果需要给多个邮件⼈,请修改为:
$users = “ johnson@sysmicro “,”sam@sysmicro”
3) 修改IP列表、报告⽣成⽬录
$reportPath = "D:\script\";
此处⽤为存放⽣成的HTML报告⽂件,也建议将PS1⽂件也存于同⼀⽬录。
$computers = Get-Content "";
在此⽬录创建⼀个⽂件,请将测试的主机名或是IP地址埴到此⽂件中,⼀⾏⼀个服务器的主机名或是IP地址,如果是主机名,确保有你的DNS能正常解析出正确的IP地址,如:
4) 修改SMTP服务器及发件⼈邮件地址:
$smtpServer = "mail01.sysmicro"
$smtp = New-Object Net.Mail.SmtpClient($smtpServer)
$msg = New-Object Net.Mail.MailMessage
$msg.To.Add($user)
$msg.From = "johnson@sysmicro"
2、 在PowerShell中测试如果脚本不能执⾏,请修改脚本执⾏策略为RemoteSigned,或是Unrestricted。
3、 创建计划任务,让脚本⾃动在指定时间运⾏!
Powershell–file”D:\Script\PingReport_51cto.ps1”
设置好后,每次执⾏会在D:\Script下⽣成Html⽂件报告,并发邮件给管理员,邮件效果如下:powershell创建目录
说明:你可以⾃已设置计划任务,每⼩时,或是每天执⾏,以⽅便及时了解⽹络状态!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。