使用批处理脚本进行Cisco Anyconnect快速免输密码登录认证
前言
因为工作需要,我们需要使用 Cisco Anyconnect 登录 VPN,但是这个客户端做得不太好,不能够记录密码,每次登录都需要手动输入密码,非常麻烦.经过一番搜索与研究,发现他其实提供有一个命令行,方便用于登录.
具体做法
实际上就是执行 Cisco Anyconnect 安装目录下的 vpncli.exe
命令,他有个交互式的命令行界面,同时也支持输入一个 profile
来自动化处理.于是,我们可以写这么一个简单的脚本和配置文件.
脚本文件 connect-vpn.bat
内容如下:
@echo off
"C:\Program Files (x86)\Cisco\Cisco Secure Client\vpncli.exe" disconnect
echo Starting OpenConnect VPN connection...
"C:\Program Files (x86)\Cisco\Cisco Secure Client\vpncli.exe" -s < "%~dp0credit.txt"
pause
这里替换 vpncli.exe
为你的实际路径.
然后是 credit.txt
文件:
connect vpn.example.org
0
USERNAME
PASSWORD
这里实际上就是在执行 vpncli.exe
进入交互式界面后依次输入的内容.具体来说:
- 第一行表示连接到服务器
vpn.example.org
,这里的服务器根据实际情况修改. - 有的服务器有不同的用户组,这时候需要输入一个序号选择.如果没有,这不需要第二行.
- 第三行输入你的用户名.
- 第四行输入你的密码.
以上两个文件都保存在同一个目录下.
此外,为了方便,我们还可以写一个批处理脚本来断开 VPN 连接,编辑文件 disconnect-vpn.bat
,内容如下:
@echo off
"C:\Program Files (x86)\Cisco\Cisco Secure Client\vpncli.exe" disconnect
pause
使用的时候,直接双击 connect-vpn.bat
即可连接到 VPN,想要断开 VPN 只需要双击一下 disconnect-vpn.bat
.为了方便,我在这两个脚本的末尾都加上了一个 pause
命令来暂停,等待用户输入任意键后结束.这样子方便用户查看脚本启动的日志.如果不想要这个,直接删掉改行即可.