思科AnyConnect v3.1自动登录


10

关于自动登录,我在使用Cisco AnyConnect v3.1时遇到了一些困难。我必须每天整天保持与一台服务器的连接,如果我不必每天都提取我的16个字符的密码,那将是超级好。我希望客户端自动登录,但是目前我甚至不确定这种可能性。

我应该注意,AnyConnect软件是由我们的托管公司提供的,而且我或组织中的任何人都不能访问事物的管理方面。我确实看到互连网上有这样的软件,称为“ AnyConnect配置文件编辑器”,但是Cisco不允许我在没有有效登录的情况下进行下载。

我一直在%appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xml审查我的首选项以及%programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XML审查我的个人资料设置。这些都没有显示我可以存储我的凭据的任何地方。我什至尝试通过在某些地方敲我的密码来破坏我的个人资料几次。那没用,算了。

最后,我发现此论坛帖子似乎指定了客户端和服务器证书的“缩略图”以及称为SDI令牌的内容。

免责声明:我每天都是前端Web开发人员,已经有很长时间了,因为我必须自己进行任何网络管理,对noob的问题深表歉意!


1
这通常是由管理Anyconnect访问权限的人员设置和控制的策略。如您所述,您无权访问该部分配置,我怀疑我们能为您做很多事情。作为“最终用户”问题,这很可能成为话题。
Brett Lykins 2013年

细节合理的问题……让我们迁移到超级用户
Mike Pennington

Answers:


16

这是我的脚本,以启动Cisco AnyConnect Mobility Client v3.1并自动登录。将该脚本另存为FILENAME.vbs,用密码替换 PASSWORD,如果需要(可能不需要)替换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}"

1
很好的解决方案!对于我的特定情况,我还添加了一些额外的TABENTERsleep,并且效果很好。对于我的机器和Internet连接(上下300Mbit),我将所有睡眠时间减少到仅半秒(500毫秒),现在我可以超快地获得VPN连接!谢谢!
informatik01

1
!注意:如果您的密码包含字符%(^〜+,你需要把{和}身边。
jeroenk

4

我按照以下思路使用:

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这应该提醒大家,做不同的选择,而不是什么时候?0,即1>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
-s开关在客户端的版本3.1中不可用。您有4.1版吗?该版本在某处公开可用吗?我没有有效的许可证可以从Cisco网站下载它。
SzilardD

是的,我使用的是4+版本。但是,我不知道任何合法的公共消息来源(可能是由于出口限制)。
BER的

3

我正在用“ meh”答案回答我自己的问题-这不是我追求的目标,我很乐意接受另一个可以更好地回答我的原始问题的答案。

由于我没有自动登录的运气,因此我能想到的第二件事是将我可笑的长密码自动复制到剪贴板。在Windows中,我.bat在体内创建了一个文件:

echo|set /p=MyPassword|clip

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

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


如果您愿意做一些简单的自动化工作,请使用autoit启动VPN应用程序,然后将密码复制到密码字段中
Mike Pennington 2013年

2
拜托,echo|set /p=MyPassword|clip与just相比有什么优势echo MyPassword|clip
bers 2015年

3
@bers如果你只使用echo your_pass| clip它也将把/追加新行字符在结束your_pass的。只需自己尝试一下,然后将其粘贴到某个编辑器中,您会注意到光标在下一行(如果您使用的编辑器可以显示换行符,例如Notepad ++SciTE,请使用它,并且您会在屏幕上看到CRLF Windows在your_pass的末尾)。但是MikeZ的当前解决方案可以完美地工作(作为将密码复制到剪贴板的一种方式)。
informatik01

1
@ informatik01感谢您的解释!
bers

1
(1)@ informatik01的出色解释并未完全解决echo|命令行开头对的需求。原因是set /p从标准输入读取值(一行)的命令。没有echo|,该set /p=MyPassword|clip命令将静默坐下并从终端读取一行。(2)我讨厌看到|前后没有空格。但是要当心,它echo | set /p=MyPassword | clipMyPassword (以尾随空格)写入剪贴板。您可以通过添加引号来防止这种情况echo | set /p="MyPassword" | clip
斯科特(Scott)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.