正如标题所说,我正在寻找一种好方法,当机器长时间(14 天以上)与互联网断开连接时向 Windows 用户发送通知。
这些是运行 Win 10 LTSB 的工业机器,基本上长时间处于信息亭模式。我正在寻找一种方法来提示用户连接到互联网并检查 Windows 更新(如果他们在过去两周内没有这样做的话)。
目前我的解决方案有点不靠谱,但确实有效。我使用预定的 powershell 脚本来实现它。一个脚本记录用户每次连接时的日期,另一个脚本记录用户每次断开连接时的日期。第三个脚本每小时运行一次,比较两个脚本和当前日期,如果距离上次断开连接已超过 14 天,则会向用户显示一条消息。
我想知道是否有更好的方法来做到这一点。谢谢!
答案1
我猜你是将其作为由连接/断开连接时的网络事件触发的计划任务来运行。但是,这将依赖于事件记录器,而对于永不重启的机器,我不会依赖它。
相反,你为什么不继续用同样的方式仅运行 1 个 powershell 脚本。例如,任务每天上午 9 点运行一次。脚本 ping google.com或者 8.8.8.8 如果成功,则将值“0”写入 some.txt 文件,如果 ping 失败 -> 从 some.txt 读取值并添加 + 1。因此,值现在将变为 1,如果值为 4,则现在变为 5,依此类推。添加 1 后,检查新值是否高于 14,然后通知用户(通过错误促销/警报或电子邮件...)。或者每天运行两次,然后最后一条语句变为如果值高于 28 则执行此操作...或者按照您的喜好频率运行。
我确信还有其他方法或软件可以做到这一点,但我认为这是最可靠的方法。长期使用永远不会失败。
--编辑通过弹出窗口通知用户。本机运行,无需任何程序集。
$wshell = New-Object -ComObject Wscript.Shell
$wshell.Popup("Connect now! Use dailup AOL if you have to!",0,"Done",0x1)
更多详情请参阅Popup 方法
- 编辑Powershell 脚本执行策略
创建任务时添加这些
程序/脚本:Powershell.exe
添加参数:-ExecutionPolicy Bypass C:\some\folder\test.ps1
如果这不起作用。然后在 GroupPolicy 上启用此功能,运行 gpedit.msc
按照此路径\Windows Components\Windows PowerShell
双击启用脚本执行 启用 > 允许所有脚本
等待一段时间以使更改生效。重新启动电脑或等待几分钟,然后尝试右键单击并在任务计划程序上手动运行任务以进行验证。