Files
guzhujushiBlog/deploy/ipwatch/install.ps1
T

34 lines
1.7 KiB
PowerShell
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ============================================================
# 安装 MyBlog IP 白名单定时任务(家庭 Windows 电脑)
# 作用:注册 Windows 计划任务,每 30 分钟自动运行 report.ps1
# 前置:已复制 ipwatch.conf.example 为 ipwatch.conf 并填写
# 用法:powershell -ExecutionPolicy Bypass -File .\install.ps1
# 说明:计划任务在“当前登录用户”下运行;如需开机无登录也运行,
# 请右键任务 -> 属性勾选“不管用户是否登录都要运行”
# ============================================================
$ErrorActionPreference = "Stop"
$ScriptDir = $PSScriptRoot
$Report = Join-Path $ScriptDir "report.ps1"
$ConfFile = Join-Path $ScriptDir "ipwatch.conf"
if (-not (Test-Path -LiteralPath $ConfFile)) {
Write-Host "缺少 ipwatch.conf:请先复制 ipwatch.conf.example 并填写 SERVER / SECRET" -ForegroundColor Red
exit 1
}
$TaskName = "MyBlogIPWatch"
# /TR 里对带空格的脚本路径加引号,PowerShell 会整体作为一个参数传给 schtasks
$Action = "powershell.exe -NoProfile -ExecutionPolicy Bypass -File `"$Report`""
& schtasks /Create /F /TN $TaskName /SC MINUTE /MO 30 /TR $Action | Out-Null
if ($LASTEXITCODE -ne 0) {
Write-Host "创建计划任务失败,请确认以管理员身份运行或检查 schtasks 输出" -ForegroundColor Red
exit 1
}
# 创建后立即运行一次,马上验证配置是否正确
& schtasks /Run /TN $TaskName | Out-Null
Write-Host "计划任务 $TaskName 已创建:每 30 分钟自动检查公网 IP。"
Write-Host "日志文件:$(Join-Path $ScriptDir 'ipwatch.log')"
Write-Host "(首次运行结果可在日志中查看;卸载请运行 uninstall.ps1"