如果要使用校园网,必须打开浏览器输入校园网地址,之后输入账号密码登录。实验室电脑绝大多数情况下应该处于联网状态,但不幸的是,我深会限制校园网客户端数量,一旦有新设备接入,很可能实验室电脑就会断网。这时,你又要重新打开校园网网址,输入账号密码…此刻,我就在想 windows 能不能实现自动登录校园网🤔。
前提
本项目通过 powershell 脚本实现,请检查自己的电脑里有没有 powershell 程序。
即使学校不是深圳大学,也可以参照本文自动登录校园网的思路,同时下文也说明了可能需要修改的地方。
Powshell 官方指路 👉 https://learn.microsoft.com/zh-cn/powershell/
核心逻辑
我们会找一个第三方网址来判断是否连接校园网,如果没有连接到校园网,就向校园网服务器发送 POST 请求。
代码实现
为了脚本的可扩展性和照顾到其它学习的同学,将核心变量都以用户系统变量的方式存储。如果后期需要更改账号密码,也更加方便。代码如下(文件名:AutoConnect.ps1)
function Get-EnvValue{
param (
[string]$envVarName,
[string]$defaultValue
)
$envValue = Get-Item -Path "Env:$envVarName" -ErrorAction SilentlyContinue
if ($envValue) {
return $envValue.Value
} else {
return $defaultValue
}
}
$test_url=Get-EnvValue -envVarName "TEST_CONNECT_URL" -defaultValue "baidu.com"
$user_id=Get-EnvValue -envVarName "SZU_USERID" -defaultValue "123"
$password=Get-EnvValue -envVarName "SZU_PASSWORD" -defaultValue "123"
$loginUrl=Get-EnvValue -envVarName "LOGIN_URL" -defaultValue "https://drcom.szu.edu.cn/"
$bodyTemplate="DDDDD=$user_id&upass=$password&R1=0&R2=&R6=0¶=00&0MKKey=123456"
while (1){
set str =$(ping -n 3 -w 80 $test_url)
$result=[regex]::matches($str,'100% ')
if($result.Success){
echo $user_id
Invoke-WebRequest -UseBasicParsing -Uri $loginUrl `
-Method "POST" `
-Body $bodyTemplate
sleep 2
}
else{
sleep 600
}
}
涉及到的用户变量如下
变量名 | 用户/系统变量 | 含义 |
---|---|---|
test_url | TEST_CONNECT_URL | 测试联网第三方网站 |
user_id | SZU_USERID | 账号 |
password | SZU_PASSWORD | 密码 |
loginUrl | LOGIN_URL | 校园网地址 |
如何设置系统变量,有好多资料我就不再啰嗦了,一图搞定。
但是,windows 出于安全考虑,默认是不允许执行powershell脚本,因此需要我们修改执行策略:
- 以管理员方式打开powershell,输入
set-executionpolicy remotesigned
回车,然后输入y,再回车即可。
- 进入该文件所在文件夹 打开cmd 运行脚本
start powershell -File "AutoConnect.ps1"
电脑退出校园网登录,测试脚本是否可行。
在测试时,sleep 睡眠时间可以设置小一点,建议 5 s。
脚本启动时运行
- 在同级目录下,新建一个txt文件,写入以下内容后,改名为
AutoConnect.cmd
start powershell -WindowStyle Hidden -Command "AutoConnect.ps1"
- 打开控制面板,找到任务计划程序选项
-
打开控制面板
-
查看方式为大类别,选择管理工具
-
找到任务计划程序
-
- 创建自动登录计划任务
3.1 触发器设置
- 指定启动脚本
测试
ok,现在已经完成了。赶快重启电脑测试一下,脚本运行成不成功吧!!!ヾ(≧▽≦*)o
参考
- Renegade12138, 校园网自动登录,断线重连 - CSDN, 2020