Cisco AnyConnect v3.1 自动登录

Cisco AnyConnect v3.1 自动登录

我在使用 Cisco AnyConnect v3.1 自动登录方面遇到了一些困难。我必须每天全天连接到单个服务器,如果我不必每天挖出 16 个字符的密码,那就太好了。我希望客户端能够自动登录,但目前我甚至不确定这是否可行。

我应该指出,AnyConnect 软件是由我们的托管公司提供给我的,我和组织中的任何人都无权访问管理方面的内容。我确实看到互联网上有这样一款名为“AnyConnect 配置文件编辑器”的软件,但思科不允许我在没有有效登录的情况下下载。

我查看了%appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xml我的偏好设置以及%programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XML个人资料设置。但这些设置都没有显示我可以存储凭据的任何地方。我甚至几次试图在某些地方强行输入密码,导致个人资料被破坏。但那没用,想想看。

最后,我发现此论坛帖子它似乎指定了客户端和服务器证书“指纹”以及所谓的 SDI 令牌。

免责声明:我是一名前端网络开发人员,已经很长时间没有为自己做过任何网络管理了,抱歉问了这么一个菜鸟问题!

答案1

我使用类似这样的方法:

set FILE=%TEMP%\tmp
echo connect your.host.name> %FILE%
(echo 0)>> %FILE%
echo yourUserName>> %FILE%
echo yourPassWord>> %FILE%
"C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s < %FILE%

更新:为什么在 周围加括号echo 0?这应该提醒您,在做出与 不同的选择时01>2>具有特殊含义,分别重定向stdoutstderr,但不回显12。因此,为了安全起见,我们使用 ( echo 0).)

这更简洁一些:

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord& echo.) > %FILE%
more %FILE% | "C:\Program Files\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

但是,如果您想在没有临时文件的情况下实现同样的事情,这对我来说不起作用 - 我会感兴趣,为什么:

(echo connect your.host.name& echo 0& echo yourUserName& echo yourPassWord) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

更新:这是有效的,通过以下方式找到https://stackoverflow.com/a/29747723/880783

(echo connect your.host.name^& echo 0^& echo yourUserName^&echo yourPassWord^&rem.) | "%ProgramFiles(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpncli.exe" -s

当然,所有这些变体都取决于您的服务器配置(尤其是您必须选择的 VPN 组)。要找出您需要输入的内容,请vpncli.exe不带任何参数调用一次,以 开头connect your.host.name,然后记下提示您输入的内容。

更新:这具有额外的好处,即提供有关服务器、用户名和密码的完全自由,并且不依赖于任何睡眠值(如果您的系统忙于其他事情,这总是很困难)。

答案2

以下是我的脚本,用于启动 Cisco AnyConnect Mobility Client v3.1 并自动登录。将此脚本另存为文件名.vbs, 代替 密码使用您的密码,如果需要,替换 VPN Client exe 的路径(可能不需要),并且您可能还需要根据您的连接速度调整第二个睡眠时间(我的连接速度为 5000 时可以可靠地工作,但您的连接速度可能需要更少/更多时间才能拨号回家)。我已将其固定在任务栏上,但您也可以使用热键将其设置为休眠状态。

Set WshShell = WScript.CreateObject("WScript.Shell")

WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"""

WScript.Sleep 3000

WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"

WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

WScript.Sleep 5000

WshShell.SendKeys "PASSWORD"
WshShell.SendKeys "{ENTER}"

答案3

我用这个“meh”的答案来回答我自己的问题 - 这不是我想要的,我很乐意接受另一个可以更好地回答我原始问题的答案。

由于我没能成功使用自动登录,我能想到的第二个最佳办法就是将我那可笑的长密码自动复制到剪贴板。在 Windows 中,我创建了一个.bat文件,其正文如下:

echo|set /p=MyPassword|clip

其中“MyPassword”是您的实际密码。

双击后,此文件会将您的密码复制到剪贴板,以便快速登录。总比没有好!

相关内容