找回密码
 加入我们
搜索
      
查看: 4129|回复: 8

[网络] 请教:winserver 条件重启应该如何设置?当ping不通局域网内网址时重启

[复制链接]
发表于 2023-8-12 07:30 | 显示全部楼层 |阅读模式

winerver 宿主机 192.168.1.2
openwrt 虚拟机 192.168.1.1
无线AP             192.168.1.3

想在winerver 宿主机上设置,当宿主机ping不通无线AP时,宿主机自动重启,winserver能否创建这样的计划任务?有没有什么软件可以实现此任务?
发表于 2023-8-12 07:52 | 显示全部楼层
# 设置要监控的 IP 地址和重启间隔(以秒为单位)
$targetIP = "192.168.1.1"
$restartInterval = 300  # 例如:300 秒 = 5 分钟

# 循环监视并重启计算机
while ($true) {
    $pingResult = Test-Connection -ComputerName $targetIP -Count 1 -ErrorAction SilentlyContinue

    if ($pingResult -eq $null) {
        Write-Host "无法 ping 通 $targetIP,准备重启计算机..."
        Restart-Computer -Force
    } else {
        Write-Host "可以 ping 通 $targetIP,等待 $restartInterval 秒..."
    }

    Start-Sleep -Seconds $restartInterval
}
-----------
要保存这个脚本,可以按照以下步骤操作:

打开记事本或其他文本编辑器。
将上述 PowerShell 脚本粘贴到文本编辑器中。
选择 "文件" > "保存"。
在 "文件名" 字段中输入一个文件名,例如 "AutoRestart.ps1"。
在 "保存类型" 下拉菜单中选择 "所有文件"。
选择一个你喜欢的保存位置,然后点击 "保存"。
保存后,你可以在 PowerShell 中运行这个脚本,或者使用 Windows 计划任务工具来定期运行脚本以实现自动重启。
发表于 2023-8-12 09:49 | 显示全部楼层
本帖最后由 neavo 于 2023-8-12 09:53 编辑
@echo off
        set ip=m.neavo.me

        :FuncMain       
                D:
                cd D:\Batch
                ping %ip% | find "TTL" && goto FuncDone || goto FuncRepeatOne
        exit

        :FuncDone
                set hour=%time:~,2%
                if "%time:~,1%"==" " set hour=0%time:~1,1%
                echo [I] %date:~0,4%%date:~5,2%%date:~8,2%-%hour%%time:~3,2%%time:~6,2% : Done ... >> log\UPSCheck\%date:~0,4%%date:~5,2%%date:~8,2%.txt
        exit

        :FuncRepeatOne
                set hour=%time:~,2%
                if "%time:~,1%"==" " set hour=0%time:~1,1%
                echo [W] %date:~0,4%%date:~5,2%%date:~8,2%-%hour%%time:~3,2%%time:~6,2% : Failed ... >> log\UPSCheck\%date:~0,4%%date:~5,2%%date:~8,2%.txt
               
                timeout /t 300 /nobreak
                ping %ip% | find "TTL" && goto FuncDone || goto FuncRepeatTwo
        exit

        :FuncRepeatTwo
                set hour=%time:~,2%
                if "%time:~,1%"==" " set hour=0%time:~1,1%
                echo [W] %date:~0,4%%date:~5,2%%date:~8,2%-%hour%%time:~3,2%%time:~6,2% : Failed ... >> log\UPSCheck\%date:~0,4%%date:~5,2%%date:~8,2%.txt
               
                timeout /t 300 /nobreak
                ping %ip% | find "TTL" && goto FuncDone || goto FuncShutdown
        exit

        :FuncShutdown
                set hour=%time:~,2%
                if "%time:~,1%"==" " set hour=0%time:~1,1%
                echo [E] %date:~0,4%%date:~5,2%%date:~8,2%-%hour%%time:~3,2%%time:~6,2% : Shutdown ... >> log\UPSCheck\%date:~0,4%%date:~5,2%%date:~8,2%.txt & shutdown /s /t 10
        exit
pause


来个命令行版的

逻辑是ping目标域名/IP,不通的话五分钟重试,重试两次都不通则五分钟后关机,相关操作记录会写入LOG文件,记录相关时间轴

路径和目标域名/IP自己改下应该就能用
 楼主| 发表于 2023-8-12 14:13 来自手机 | 显示全部楼层
hayse 发表于 2023-8-12 07:52
# 设置要监控的 IP 地址和重启间隔(以秒为单位)
$targetIP = "192.168.1.1"
$restartInterval = 300  #  ...

多谢🙏
 楼主| 发表于 2023-8-12 14:14 来自手机 | 显示全部楼层
neavo 发表于 2023-8-12 09:49
来个命令行版的

逻辑是ping目标域名/IP,不通的话五分钟重试,重试两次都不通则五分钟后关机,相关操作 ...

一并感谢
发表于 2023-8-12 17:02 | 显示全部楼层
感觉这套逻辑有问题。如果AP关了,自己岂不是会不断重启?
发表于 2023-8-12 18:11 来自手机 | 显示全部楼层
很多定时关机重启软件有ping网络通断这一选项.
 楼主| 发表于 2023-8-13 08:00 | 显示全部楼层
hayse 发表于 2023-8-12 07:52
# 设置要监控的 IP 地址和重启间隔(以秒为单位)
$targetIP = "192.168.1.1"
$restartInterval = 300  #  ...

实际操作中遇到问题,再来请教一下:

在winserver 2022系统下,把这个脚本作为任务计划程序执行了,常规中选了以最高权限运行,但是在实际执行过程中,还是提示“Restart-Computer : 无法重新启动计算机 ,并显示以下错误消息: 没有相应特权”

我用“ Restart-Computer -Force”单独在Windows PowerShell执行也是提示这个错误,如果在以管理员身份运行的Windows PowerShell中执行“ Restart-Computer -Force”,则一切正常,请问脚本里要添加什么命令才能使“ Restart-Computer -Force”以管理员身份运行?

多谢
发表于 2023-8-13 21:15 | 显示全部楼层
# 判断是否以管理员权限运行
if (-not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    # 如果不是管理员,使用Start-Process命令以管理员权限重新运行脚本
    Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    exit
}
-------
脚本开头加上,可能要关UAC
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

Archiver|手机版|小黑屋|Chiphell ( 沪ICP备12027953号-5 )沪公网备310112100042806 上海市互联网违法与不良信息举报中心

GMT+8, 2025-4-29 19:59 , Processed in 0.009676 second(s), 5 queries , Gzip On, Redis On.

Powered by Discuz! X3.5 Licensed

© 2007-2024 Chiphell.com All rights reserved.

快速回复 返回顶部 返回列表