新闻详情

新闻详情

首页 / 资讯中心 / 详情

PowerShell 网络监控脚本:延迟超阈值自动推送到手机(附防抖与告警去重)

发布时间:2026/9/26 11:15:44来源:尧图网络
PowerShell 网络监控脚本:延迟超阈值自动推送到手机(附防抖与告警去重)
摘要不用装任何第三方工具用 Windows 自带的 PowerShell 写一个网络监控脚本定时 ping 内网业务地址和隧道外网地址延迟超阈值或不通时通过企业微信群机器人 Webhook 或 Server酱推到手机。脚本带三重防骚扰设计 —— 连续几次异常才告警、同一目标冷却时间、恢复后补一条。文末附可直接复制的完整脚本。上期给大家分享了外检现场网络不通怎么排查结尾答应给各位朋友分享网络不通时怎么第一时间接到手机消息其实很简单什么环境也不用安装直接使用电脑系统自带的PowerShell写的脚本就能请一位忠实的网络管理员帮我们一刻不停盯着整个网络当网络发生阻塞时通过脚本发送消息给我们的手机。下面就跟着我一步一步搭建并实现。做过维护的人都知道我们不可能时刻盯着网络是否通畅就算一直开着ping界面我们也还会处理其他问题要么处理数据问题要么是已经离开自己的电脑去给其他医生处理问题总之是没办法一直盯着网络通不通等到各个医生打电话来或是喊的时候那会场面估计就又有些让人尴尬百十号人看着你等你恢复网络……所以我就有了个请帮手的想法外检网络其实只要保证两个地址一直通畅一个是交换业务数据的内网地址一个是和医院建立隧道的外网固定地址。这两个地址都可以使用最简单的ping命令来监测数据延迟大不大使用一段时间对这个网络正常延迟有了了解完全可以写个脚本来帮我们监测。这个帮手是怎么替我盯着的定时探一探 → 连续几次不对劲才报警 → 网络缓过来再补一条脚本和配置文件长这样第一段探测 —— 用系统自带的 .NET Ping不去抠中文输出稳function Ping-Once($ip, $timeoutMs) { $p New-Object System.Net.NetworkInformation.Ping try { $r $p.Send($ip, $timeoutMs) if ($r.Status -eq Success) { return { ok $true; ms [int]$r.RoundtripTime } } return { ok $false; ms $null } } catch { return { ok $false; ms $null } } finally { $p.Dispose() } }第二段只在真出问题时才报警 —— 连续几次异常才发不轰炸、不误报if ($bad) { $st.streak $nowSec [int]((Get-Date) - (Get-Date 1970-01-01 00:00:00)).TotalSeconds if ($st.streak -ge $Times -and (-not $st.alerted) -and ($nowSec - $st.last) -ge ($CooldownMin * 60)) { Send-Msg 网络告警 $t 目标 $t 连续 $($st.streak) 次异常阈值 $($ThresholdMs) ms $st.alerted $true $st.last $nowSec } }第三段每次启动先发一条报平安 —— 确认它在跑、推送通道是通的Send-Msg 监控已启动 网络监控已启动正在盯 $($Targets.Count) 个地址。配置文件地址、阈值、推送密钥都在这里改$Targets (192.168.1.1, 10.0.0.1) # 要盯的地址示例占位换成你自己的 $WecomKey # 企业微信机器人 Webhook留空则不用 $ServerChan # Server酱 SendKey留空则不用 $ThresholdMs 100 # 延迟超过多少毫秒算异常 $Times 3 # 连续几次异常才告警防抖 $IntervalSec 30 # 每隔多少秒探测一次 $CooldownMin 10 # 同一目标最短告警间隔分钟那怎么通知到我手机上监测的帮手有了但怎么通知我这又是一个值得考虑的问题。现在每个人时刻都离不开手机所以最好的办法就是有问题推送提醒到我手机上通知我。现在不是正在上各种AI客服吗我首先考虑的是否有我可以使用的客服。经过尝试我找到了最简单的方法群机器人 Webhook。只用手机上安装一个企业微信app就全解决了。去企微官网注册一个账号个人账号注册完全免费然后建立一个人的群启用这个群的消息推送你就得到一位24小时听候差遣的免费专用助手。到此网络有问题手机收到提示消息整个流程完全实现我们要做的就是收到网络有问题的消息及时处理使网络恢复正常就是了完全不用一直盯着电脑监测网络。有了这样一个完整的功能其实还可以做很多事情包括我现在已经用这一套流程监测数据库阻塞情况监察硬盘空间使用情况等等。完整的脚本我也已经写好由于篇幅原因我另开了一篇需要完整脚本的朋友可以看下面我附的那一份。在使用脚本或是消息推送功能中遇到什么问题也可以及时留言给我我会一一解答。其实上面也只是我的一个抛砖引玉各位朋友肯定还有其他更好的想法我们也可以一起交流探讨期待你的留言。下篇各位朋友想看什么内容呢刚才说到了服务器下篇我分享一些服务器的相关维护经验你是否期待……文中案例均已脱敏不出现系统账号、服务器地址与患者信息完整脚本# 网络监控精简可跑版—— Windows 10/11 自带 PowerShell无需安装任何东西 # 只需改下面这 8 行配置双击运行即可CtrlC 停止 $Targets (192.168.1.1, 10.0.0.1) # 要盯的地址示例占位换成你自己的 $WecomKey # 企业微信机器人 Webhook留空则不用 $ServerChan # Server酱 SendKey留空则不用 $ThresholdMs 100 # 延迟超过多少毫秒算异常 $Times 3 # 连续几次异常才告警防抖 $IntervalSec 30 # 每隔多少秒探测一次 $CooldownMin 10 # 同一目标最短告警间隔分钟 function Ping-Once($ip, $timeoutMs) { $p New-Object System.Net.NetworkInformation.Ping try { $r $p.Send($ip, $timeoutMs) if ($r.Status -eq Success) { return { ok $true; ms [int]$r.RoundtripTime } } return { ok $false; ms $null } } catch { return { ok $false; ms $null } } finally { $p.Dispose() } } function Send-Msg($title, $content) { if ($WecomKey) { $b { msgtype text; text { content $content } } | ConvertTo-Json -Compress try { Invoke-RestMethod -Uri $WecomKey -Method Post -TimeoutSec 10 -ContentType application/json; charsetutf-8 -Body ([Text.Encoding]::UTF8.GetBytes($b)) | Out-Null return } catch {} } if ($ServerChan) { try { Invoke-RestMethod -Uri https://sctapi.ftqq.com/$ServerChan.send -Method Post -Body { title $title; desp $content } -TimeoutSec 10 | Out-Null } catch {} } } $state {} foreach ($t in $Targets) { $state[$t] { streak 0; alerted $false; last 0 } } Send-Msg 监控已启动 网络监控已启动正在盯 $($Targets.Count) 个地址。 while ($true) { foreach ($t in $Targets) { $r Ping-Once $t $ThresholdMs $st $state[$t] $bad (-not $r.ok) -or ($r.ms -gt $ThresholdMs) if ($bad) { $st.streak $nowSec [int]((Get-Date) - (Get-Date 1970-01-01 00:00:00)).TotalSeconds if ($st.streak -ge $Times -and (-not $st.alerted) -and ($nowSec - $st.last) -ge ($CooldownMin * 60)) { Send-Msg 网络告警 $t 目标 $t 连续 $($st.streak) 次异常阈值 $($ThresholdMs) ms $st.alerted $true $st.last $nowSec } } else { if ($st.alerted) { Send-Msg 网络恢复 $t 目标 $t 已恢复正常当前 $($r.ms) ms } $st.streak 0 $st.alerted $false } } Start-Sleep -Seconds $IntervalSec }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

SQL Server + Qt 学生管理系统:ODBC配置到增删改查实战 2026/9/26 18:43:29

SQL Server + Qt 学生管理系统:ODBC配置到增删改查实战

简介:基于SQL Server与Qt实现的学生管理系统,是面向计算机相关专业在校生、教师及企业开发者的课程设计与毕业设计参考源码。项目以C/Qt搭建前端界面,后端对接SQL Server数据库,覆盖学生信息、家庭情况、民族与学校字典、金额操作…

阅读更多 →
网盘直链获取原理与本地化实践指南 2026/9/26 18:43:29

网盘直链获取原理与本地化实践指南

1. 项目概述:为什么“免客户端下载”成了刚需,又为什么直链是唯一解“如何快速实现网盘免客户端下载:终极直链获取指南”——这个标题里藏着过去三年网盘生态最真实、最普遍、也最让人无奈的用户痛点。我从2019年开始做资源分发类项目&#x…

阅读更多 →
RL-赵-(八)-Value函数拟合算法01-StateValue估算:TD函数逼近算法06【线性逼近器/TD-Linear算法总结与分析】 2026/9/26 18:43:28

RL-赵-(八)-Value函数拟合算法01-StateValue估算:TD函数逼近算法06【线性逼近器/TD-Linear算法总结与分析】

三、Summary of the story Summary of the story 首先从一个objective function出发 J ( w ) = E [ ( v π ( S ) − v ^ ( S , w ) ) 2 ] \begin{aligned}J(w)=\mathbb{E}[(v_\pi(S)-\hat{v}(S,w))^2]\end{aligned} J(w)=E[(vπ​(S)−v^(S,w))2]​ 这个目标函数表明这是一个…

阅读更多 →
Windows Update服务消失的深层原因与注册表修复指南 2026/9/26 18:43:22

Windows Update服务消失的深层原因与注册表修复指南

1. 这不是服务“消失”,而是Windows Update的底层状态被破坏了你打开services.msc,翻遍整个服务列表,就是找不到Windows Update(wuauserv)这个服务——它像被系统“抹除”了一样。更诡异的是,你在管理员权限…

阅读更多 →
Graspness原理与实战:基于PointNet++的6D抓取位姿预测 2026/9/26 18:43:22

Graspness原理与实战:基于PointNet++的6D抓取位姿预测

简介:本资源是一套基于Graspness理论实现机械臂视觉引导6自由度抓取的完整Python开发项目,面向计算机、人工智能、机器人等方向的本科生与研究生,适用于课程设计、毕业设计及机器人视觉抓取技术入门实践。项目融合点云处理、深度学习&#xf…

阅读更多 →
8类降AI率工具横向测评:研究生论文如何应对AIGC检测 2026/9/26 18:43:22

8类降AI率工具横向测评:研究生论文如何应对AIGC检测

最近一段时间,我身边不少研究生都在为一件事头疼——论文明明是自己一个字一个字写在文档里的,学校用AI检测工具一扫描,非说你有大段内容“疑似AI生成”。2026届的同学们面临的这个困境尤其明显,答辩前被导师通知“查一下AI率&…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉