Skip to content

About

校园网登录工具,基于 PowerShell + Windows Credential Manager 实现。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

HTU Script (Windows 11)

河师大校园网登录 / 登出工具,基于 PowerShell + Windows Credential Manager 实现。 为上游 htu-script(Bash + libsecret)的 Windows 11 复刻,命令接口与上游保持一致。

依赖

  • Windows 11(自带 PowerShell 5.1;也可在 PowerShell 7+ 上运行)
  • Windows Credential Manager(操作系统自带)

无需 curl、无需 libsecret、无需任何额外包。普通用户运行即可,不需要管理员权限。

快速开始

cd htu-script-windows

# 1. 保存账号(按提示输入学号、密码、运营商)
.\htu-script.ps1 net set
# 或者用包装脚本(自动绕过 ExecutionPolicy)
.\htu-script.cmd net set

# 2. 登录 / 登出
.\htu-script              # 登录
.\htu-script.cmd logout   # 登出

Windows 包装入口(htu-script.cmd、htu-script-hidden.cmd、htu-script-silent.vbs)的命令行参数与 htu-script.ps1 一致,主要用于绕过执行策略或隐藏窗口。

命令

命令 说明
.\htu-script net set 设置 / 修改账号
.\htu-script 登录校园网
.\htu-script logout 登出校园网
.\htu-script net delete 删除保存的账号(任一 key 失败会打印警告,需到 凭据管理器 手动清理)

选项

选项 说明
--delay N 在执行前等待 N 秒(开机自启场景,给校园网 / 凭据管理器准备时间)

也可通过环境变量 HTU_STARTUP_DELAY=N 设置延时,效果等价。

开机自启(推荐)

开机后校园网可能尚未就绪,直接运行会失败。用 --delay 解决:

  1. 保存账号:.\htu-script.cmd net set
  2. 连接校园网 WiFi:在 Windows 中连接校园网 WiFi
  3. 添加启动项:
    • 打开 任务计划程序(Win+R → taskschd.msc)
    • 创建任务 → 触发器选 登录时 → 操作选 启动程序,程序填 wscript.exe,参数填:
      "C:\path\to\htu-script-windows\htu-script-silent.vbs" --delay 8 login
      
    • 不要勾选 使用最高权限运行
    • 在 条件 选项卡中取消勾选 "只有在使用交流电源时才启动"

注意:本脚本只访问当前用户的 Credential Manager,普通用户运行即可;选择 "登录时" 触发即可正常读取当前用户的凭据。

平台支持

状态 环境
✅ 实测 Windows 11 + PowerShell 5.1(x64)
✅ 理论可用 Windows 10 / 11 + PowerShell 7+

不支持 macOS、Linux。如需多平台,请使用上游 htu-toolbox 二进制。

安全注意事项

输入隐私

net set 时的输入行为(与上游一致):

  • 学号:每字符屏幕回显为 *;保存成功后只在终端打印脱敏形式(首 3 末 3,中间 ***,例如 123***456;过短学号整体打码为 ***)。
    • 字符集限制:仅接受 ASCII 字母 / 数字 / 点 / 下划线 / 连字符,长度 ≤32。换行、引号、; & \ 等都会被拒绝——这是挡掉"凭据被污染后通过 URL 注入额外查询键把凭证发到外网"的关键。
  • 密码:完全静默,不回显任何字符;为防误输必须输入两次确认,两次完全一致才接受。
    • 长度 ≤128。
  • 内存保护:密码以 SecureString 形式持有,进入 HTTP 请求时一次性 marshal 到原生 BSTR,构造 URL 后立即清零托管字节数组;SecureString 用完 Dispose()。

网络层面

  • 校园网登录门户(http://192.168.1.1)和登出接口(http://10.101.2.205/loginOut)使用的是 HTTP 而非 HTTPS。
  • 网络可用性探测只发一个 HTTPS HEAD 请求到 https://example.com/,与上游 htu-script (Bash) 保持一致。
  • 解析 portal 重定向 URL 后,脚本做多层防御:
    • URL 字符白名单:必须形如 http://<IPv4>[:port]/quickauth.do;
    • 私网断言:主机必须落在 RFC1918 私网段(10/8、172.16/12、192.168/16),且拒绝 userinfo(如 http://10.0.0.1@evil.com/auth 会被直接拒绝);
    • Submit-Login 入口再校验:学号 / 运营商 / URL 在拼装查询串之前再校验一次,防止凭据管理器被污染时 URL 被注入额外 userid / passwd 键,把凭证发到任意外网 host。

本地信任边界

  • 凭证存放在 Windows Credential Manager,通过 DPAPI 加密到当前 Windows 用户。
  • 任何能以你的 Windows 用户身份运行代码的进程都能读取凭据(DPAPI 的设计前提)。
  • 离开电脑请锁屏(Win+L)。

关于 AI 辅助

本脚本(包括本 README)由 AI 辅助生成。

参考

About

校园网登录工具,基于 PowerShell + Windows Credential Manager 实现。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages