Vpnui



PowerShell script to automate the Cisco AnyConnect SSL VPN client on Windows
CiscoVPNAutoLogin.ps1
# Source www.cze.cz
# This script is tested with 'Cisco AnyConnect Secure Mobility Client version 3.0.5080'
# Run using %SystemRoot%system32WindowsPowerShellv1.0powershell.exe -ExecutionPolicy Bypass -File 'C:CiscoVPNAutoLogin.ps1'
# VPN connection details
[string]$CiscoVPNHost='vpn.example.com'
[string]$Login='username'
[string]$Password='password'
[string]$vpncliAbsolutePath='C:Program Files (x86)CiscoCisco AnyConnect Secure Mobility Clientvpncli.exe'
[string]$vpnuiAbsolutePath='C:Program Files (x86)CiscoCisco AnyConnect Secure Mobility Clientvpnui.exe'
#****************************************************************************
#**** Please do not modify code below unless you know what you are doing ****
#****************************************************************************
Add-Type-AssemblyName System.Windows.Forms -ErrorAction Stop
# Set foreground window function
# This function is called in VPNConnect
Add-Type@'
using System;
using System.Runtime.InteropServices;
public class Win {
[DllImport('user32.dll')]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool SetForegroundWindow(IntPtr hWnd);
}
'@-ErrorAction Stop
# quickly start VPN
# This function is called later in the code
FunctionVPNConnect()
{
Start-Process-FilePath $vpncliAbsolutePath-ArgumentList 'connect $CiscoVPNHost'
$counter=0; $h=0;
while($counter++-lt1000-and$h-eq0)
{
sleep -m 10
$h= (Get-Process vpncli).MainWindowHandle
}
#if it takes more than 10 seconds then display message
if($h-eq0){echo 'Could not start VPNUI it takes too long.'}
else{[void] [Win]::SetForegroundWindow($h)}
}
# Terminate all vpnui processes.
Get-Process|ForEach-Object {if($_.ProcessName.ToLower() -eq'vpnui')
{$Id=$_.Id; Stop-Process$Id; echo 'Process vpnui with id: $Id was stopped'}}
# Terminate all vpncli processes.
Get-Process|ForEach-Object {if($_.ProcessName.ToLower() -eq'vpncli')
{$Id=$_.Id; Stop-Process$Id; echo 'Process vpncli with id: $Id was stopped'}}
# Disconnect from VPN
echo 'Trying to terminate remaining vpn connections'
start-Process-FilePath $vpncliAbsolutePath-ArgumentList 'disconnect'-wait
#Connect to VPN
echo 'Connecting to VPN address '$CiscoVPNHost' as user '$Login'.'
VPNConnect
# Write login and password
[System.Windows.Forms.SendKeys]::SendWait('$Login{Enter}')
[System.Windows.Forms.SendKeys]::SendWait('$Password{Enter}')
# Start vpnui
start-Process-FilePath $vpnuiAbsolutePath
# Wait for keydown
echo 'Press any key to continue ...'
try{$x=$host.UI.RawUI.ReadKey('NoEcho,IncludeKeyDown')}catch{}

commented Jul 22, 2020

Is there any way to run this script in hidden mode?

Vpnui

Problem Description For all versions of the Email Security Appliance (ESA) and Security Management Appliance (SMA), some Secure Sockets Link (SSL) certificates issued from the QuoVadis root certificate authority (CA) trust chain before 2021-03-31 cannot b. Yeah, looks like AnyConnect's GUI is completely ignorant of what's on the command line. I can think of a couple options: Avoid the UI completely, and use vpncli.exe that's included by AnyConnect's installer; Wrap a batch file around the vpnui.exe launch, swapping out the preferences.xml file with one containing the desired host. (on win7, my preferences.xml is in my profile at AppDataRoaming. .Note: If opening from Program Files, double-click vpnui, located in the Cisco - Cisco AnyConnect Security Mobility Client folder, to launch the application. Step Type vpn.colorado.edu into the VPN: textfield, then click Connect.

  1. Cisco AnyConnect Secure Mobility Client empowers remote workers with frictionless, highly secure access to the enterprise network from any device, at any time, in any location while protecting the organization.
  2. What is vpnui exe? Vpnui.exe is a vpnui belonging to Cisco AnyConnect VPN Client from Cisco Systems, Inc. The “.exe” file extension stands for Windows executable file. Any program that is executable has the.exe file extension.

commented Jul 24, 2020

Vpnui Parameters

Is there any way to run this script in hidden mode?

@Shikha1912, sorry, been a long time since I’ve used this but no, there wasn’t at the time. The script relies on launching the login form to send the username and password. It’s possible that a new client has a cleaner way to make thins work. Please let me know if you find a solution.

InterfaceVpnuiVpnui

Vpnui.exe

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