Skip to content

Instantly share code, notes, and snippets.

@paveleremin
Created February 24, 2017 06:45
Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save paveleremin/323cf97e97990278d5ae321573c55f71 to your computer and use it in GitHub Desktop.
Save paveleremin/323cf97e97990278d5ae321573c55f71 to your computer and use it in GitHub Desktop.
Cisco AnyConnect: save password
Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run """%PROGRAMFILES(x86)%\Cisco\Cisco AnyConnect Secure Mobility Client\vpnui.exe"""
WScript.Sleep 1500
WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"
WScript.Sleep 3500
WshShell.SendKeys "YourPassword"
WshShell.SendKeys "{ENTER}"
@mcfalld
Copy link

mcfalld commented Jul 20, 2018

How do I get this to work exactly? Do I need to run the script before I connect to the AnyConnect VPN?

@dsv9
Copy link

dsv9 commented Sep 26, 2018

In my case, it didn't work out of the box. I had to:

  1. Remove the first two TABs;
  2. Increase the second WScrip.Sleep from 3500 to 10000
  3. Add accolade brackets { } around a symbol from my password. If you have any of the following in your password %!(^~+ then you should wrap that symbol in accolades too.

@msangel
Copy link

msangel commented Feb 15, 2019

Can't run this on Ubuntu.

@FabrizioMaio
Copy link

Hi I used your script with windows 10 the only problem I encountered is the fact that it does not write the password on the screen.
Also in the preference.xml file I would need to set two
host do you know how?
Thanks so much for your cooperation

@odiszapc
Copy link

Works like a charm, I ended up with this:
(Change host and password with yours)

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

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

WScript.Sleep 1500

WshShell.AppActivate "Cisco AnyConnect Secure Mobility Client"

WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "vpn.securehost.com"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{TAB}"
WshShell.SendKeys "{ENTER}"

WScript.Sleep 3500

WshShell.SendKeys "Password!$!#@"
WshShell.SendKeys "{ENTER}"


@VVVi
Copy link

VVVi commented May 20, 2020

Cool! If you use special symbols in pass then enclose it by braces {}, for example {~} https://devguru.com/content/technologies/wsh/wshshell-sendkeys.html

@paveleremin
Copy link
Author

@p333ter
Copy link

p333ter commented Feb 4, 2021

Good Job Pavel! It works for me too.

@arl-35890
Copy link

Hi, thanks Pavel for sharing this script.
I'm very unfamiliar with vbs, and I'm not sure to understand how this script is triggered? Do we have to create a schedule task to run this script as the startup of the machine?
Any help to understand how this works would be appreciated.
Thanks Guys

@JBerls
Copy link

JBerls commented Oct 29, 2021

Brilliant! Thanks so much.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment