这个帖子的后续:https://www.v2ex.com/t/847384。起因是昨天发现网络协商的速度只有 100Mbps 了,重新插网线才解决。
评论区很多热心网友提供了建议,但我还是不能确定是网线、接口本身的问题还是没插好导致的,所以我需要观察一段时间。
那么问题来了,100Mbps 其实也能正常上网、看视频等,很有可能降速了我第一时间发现不了。
于是我用自己拙劣的 Powershell 基础写了个小脚本用来检查当前网速是 Gbps 还是 Mbps:
Import-Module BurntToast
$speed = Get-NetAdapter -Name Ethernet | Format-Wide -Property linkSpeed | Out-String
$speed = $speed -replace '(^\s+|\s+$)',''
if ($speed -Like '*Gbps*') {
Write-Output 'info: check normally'
} elseif ($speed -Like '*Mbps*') {
$info = 'warning: network speed has been downgraded to ' + $speed
Write-Output $info
New-BurntToastNotification -Text $info
} else {
Write-Output 'error: failed to get network speed'
}
里面用了这个模块https://github.com/Windos/BurntToast,如果发现 Ethernet 的网速变成 Mbps ,就发一个通知。
然后这个脚本需要让它定时运行,所以我加了个计划任务。
Security Options 设置成系统级,这样运行的时候不会有蓝色 Powershell 窗口弹出:
Trigger 增加一个 daily 任务,然后 repeat 改成 1 hour ,一小时运行一次:
Actions 增加 Powershell 运行的命令,别忘了加-ExecutionPolicy RemoteSigned
:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy RemoteSigned -File check-speed.ps1
最后 Conditions 设置成联网后,或者连特定的网络时才会检查:
如果检查出问题,右下角就会弹出一个 Notification:
后面就静待了,看看还会不会出现降速的问题~希望脚本没写出 Bug😂
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.