本脚本为广东科技学院(南城校区)校园网定制的 PowerShell 自动认证工具。功能涵盖一次性认证、断网后自动重连(防断联,前台模式),并提供命令行参数快速控制。脚本以严格的无线网卡信息(仅 IPv4 + MAC)作为认证依据,注重稳定性与最小化提示输出:仅在重要事件(断网、重连、错误)时输出信息,避免干扰。
- 一键完成校园网认证全流程(自动获取网卡 IP/MAC、两步提交、轮询校内接口以确认登录)
- 防断联:前台守护模式,检测到断网时才输出提示并进行有限次自动重连
- 参数控制:支持
-y(认证成功后自动进入防断联前台运行)和-n(认证成功后不启动防断联) - 交互提示:认证结束与脚本退出均要求“按任意键退出”,避免错过信息
- 自动保存凭据:首次输入后保存到同目录
zhanghao.json,下次可免交互 - 兼容不同 PowerShell 版本的兼容性处理(如 Get-Job 参数集差异、相对路径拼接等)
- auth.ps1 — 主脚本(将脚本名替换为发布版本名如
authVX.X.ps1) - zhanghao.json —(首次认证后自动生成)保存账号与密码,请妥善保管
- 操作系统:Windows 10/11(建议 PowerShell 5.1 及以上)
- 依赖:系统自带 curl.exe(用于备用的 HTTP 检测)
- 网络:已连接校园 WLAN 或有线网,能获取 IPv4 地址的真实网卡(非虚拟)
- 在 Release 下载 ZIP 并解压到任意目录。
- 以 PowerShell 运行脚本所在目录,执行:
.\auth.ps1
-y:认证成功后自动启动防断联(前台模式),无需交互
示例:.\auth.ps1 -y或.\auth.ps1 -y username password-n:认证成功后不启动防断联,自动退出
示例:.\auth.ps1 -n
备注:-y 与 -n 互斥,不可同时使用;提供 username/password 时可省去首次交互输入。
- 脚本在关键步骤打印简洁信息:网卡(名称、IP、MAC)、认证步骤状态、认证结果。
- 防断联守护进程在正常连通时不输出;仅在检测到断网、开始重连、重连成功或重连全部失败时输出提示,避免频繁日志干扰。
- 所有最终退出都要求按任意键确认,防止信息遗漏。
- 外网连通性检测:默认检测目标为
https://www.baidu.com/,使用Invoke-WebRequest,失败时尝试curl.exe。超时与重试可在脚本变量中调整。 - 认证判定:先 POST 初始登录(从 HAR 提取的参数),解析并处理二次地址(支持相对路径拼接);随后 POST 二次登录并轮询
ajax_webauth?action=radius&ip=...以确认ret=0。最后再做一次外网 HTTP 检测确保出口可达。 - 防断联逻辑:周期检测(默认 10 秒)→ 若检测到断网则触发最多 N 次重连(默认 3 次,每次间隔 2 秒)→ 若重连成功恢复检测;若重连失败等待下一周期再试。
$watchdogIntervalSec = 10— 防断联检测间隔(秒)$watchdogRecoveryRetries = 3— 断网时每轮重连尝试次数$httpTimeoutSec = 8— HTTP 请求超时(秒)$pollIntervalSec = 1— 检查ajax_webauth的轮询间隔(秒)$pollAttempts = 10— 轮询最大次数(次)$extraHttpRetries = 3— 首次 HTTP 检测失败后的额外重试次数
.\auth.ps1
# 脚本提示输入账号/密码(首次会保存),认证成功后提示是否启动防断联,输入 Y 启动.\auth.ps1 -y
# 认证成功后直接进入前台防断联,按 Ctrl+C 停止(随后按任意键退出).\auth.ps1 -n
# 认证成功后直接退出(仍需按任意键确认退出).\auth.ps1 -y 202301001 mypassword- 未能获取网卡 IPv4 或 MAC:确认已连接到校园 WLAN 或以太网;脚本只识别物理无线/有线网卡,忽略虚拟适配器。
- “无效的 URI” 或相对路径问题:脚本已对相对路径(如以
/开头的 action)做自动拼接并回退默认内部地址以避免失败。 - 频繁被踢线或重连失败:可能因账号在多设备登录或校网限制;建议检查账号状态或增加重连间隔/减小重连频率。
- 脚本被阻止运行:执行一次性设置(仅限当前用户):
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
- 脚本会在首次成功输入账号/密码后将凭据以明文保存在脚本同目录
zhanghao.json,便于下次免交互登录。请在多人共用的设备上谨慎使用并妥善保护该文件。若需移除凭据,直接删除该文件即可。
- 若需要将守护进程改为后台 Job、计划任务或 Windows 服务,可在脚本基础上做扩展(推荐先实现“退出标志文件”机制以便跨会话停止)。
- 若校园内出口非公网站点更稳定,可将
$connectivityUrl调整为校内的稳定地址以降低误判。 - 若要启用更温和的退避策略(连续多轮失败后延长下一次检测间隔),可在防断联逻辑中加入指数退避。
若校方更改认证接口或你遇到特殊场景(例如 portal 返回其它已在线提示文本),欢迎将具体响应片段提供后我可以帮你调整脚本的解析逻辑以兼容。
版权所有 © 广东科技学院(脚本仅作便利用途,使用者应遵守校内网络使用规范)