Cisco AnyConnect v3.1 AutoLogin


10

Sto riscontrando un po 'di difficoltà con Cisco AnyConnect v3.1 per quanto riguarda l'accesso automatico. Devo rimanere connesso a un singolo server tutto il giorno ogni giorno, e sarebbe super se non dovessi scavare la mia password di 16 caratteri ogni giorno. Mi piacerebbe che il client accedesse automaticamente, ma a questo punto non sono nemmeno sicuro che sia una possibilità.

Dovrei notare che il software AnyConnect mi è stato fornito dalla nostra società di hosting e io e nessuno nella mia organizzazione abbiamo accesso al lato gestionale delle cose. Ho visto che esiste un software simile negli interweb chiamato "AnyConnect Profile Editor", ma Cisco non mi permetterebbe di scaricare senza un login valido.

Sono stato %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmla rivedere le mie preferenze, nonché %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLa rivedere le impostazioni del mio profilo. Nessuno di questi ha dimostrato da nessuna parte che sarei in grado di memorizzare le mie credenziali. Ho anche rotto il mio profilo alcune volte provando a nascondere la mia password in alcuni punti. Non ha funzionato, vai a capire.

Infine, ho trovato questo post sul forum che sembrava specificare "impronte digitali" di certificati client e server, nonché qualcosa chiamato token SDI.

Disclaimer: sono uno sviluppatore web front-end di giorno ed è passato un bel po 'di tempo da quando ho dovuto fare qualsiasi gestione della rete per me stesso, mi dispiace per la domanda noob!


1
Questa è di solito una politica che è impostata e controllata dalle persone che gestiscono l'accesso Anyconnect. Dato che hai dichiarato di non avere accesso a quella parte della configurazione, dubito che ci sia molto che possiamo fare per aiutarti. E questo è probabilmente fuori tema come una domanda "per l'utente finale".
Brett Lykins,

Domanda ragionevole con buoni dettagli ... migriamo a Super User
Mike Pennington,

Risposte:


16

Ecco il mio script per avviare Cisco AnyConnect Mobility Client v3.1 e accedere automaticamente. Salva questo script come FILENAME.vbs , sostituisci PASSWORD con la tua password, sostituisci il percorso al client VPN exe, se necessario (probabilmente no), e potresti anche dover regolare il secondo tempo di sospensione in base alla velocità della tua connessione (il mio funziona affidabile a 5000 ma il tuo potrebbe richiedere meno / più tempo per chiamare casa). Il mio è stato aggiunto alla barra delle applicazioni ma è anche possibile selezionarlo rapidamente.

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
Una bella soluzione! Ho aggiunto alcuni TAB , ENTER e sleep per il mio caso specifico e ha funzionato perfettamente. Per la mia macchina e la connessione a Internet (300 Mbit in su e in giù) ho ridotto tutti i tempi di sospensione a solo mezzo secondo (500 millisecondi) e ora ho una connessione VPN super veloce! Grazie!
informatik01,

1
Nota: se la tua password contiene i caratteri%! (^ ~ +, Devi mettere {e} attorno a loro.
jeroenk,

4

Uso qualcosa del genere:

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%

( Aggiornamento: Perché tra parentesi echo 0? Questo dovrebbe ricordare, quando si fa una scelta diversa da 0, quella 1>o 2>avere un significato speciale, reindirizzare stdouto stderr, rispettivamente - ma non riecheggiare 1o 2. Quindi rimaniamo al sicuro con ( echo 0).)

Questo è un po 'più conciso:

(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

Tuttavia, se vuoi ottenere la stessa cosa senza un file temporaneo, questo non funziona per me - sarei interessato, perché:

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

Aggiornamento: funziona, trovato tramite /programming//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

Tutte queste varianti dipendono ovviamente dalla configurazione del tuo server (in particolare il gruppo VPN che devi scegliere). Per scoprire cosa è necessario inserire, chiamare vpncli.exesenza parametri una volta, iniziare con connect your.host.name, quindi annotare ciò che viene richiesto.

Aggiornamento: questo ha l'ulteriore vantaggio di offrire la massima libertà per quanto riguarda server, nome utente e password e non si basa su alcun valore di sospensione (il che è sempre difficile se il sistema tende ad essere occupato con qualcos'altro).


2
L'opzione -s non è disponibile nella versione 3.1 del client. Hai la versione 4.1? Quella versione è disponibile pubblicamente da qualche parte? Non ho una licenza valida per scaricarlo dal sito Web Cisco.
Szilard,

Sì, ho usato la versione 4+. Tuttavia, non conosco alcuna fonte pubblica legale (probabilmente a causa di restrizioni all'esportazione).
bers

3

Sto rispondendo alla mia domanda con questa risposta "meh" - non è quello che stavo cercando, e accetterò volentieri un'altra risposta che possa rispondere meglio alla mia domanda originale.

Dato che non ho avuto fortuna con gli accessi automatici, la cosa migliore che mi è venuta in mente è stata quella di copiare automaticamente la mia password ridicolmente lunga negli appunti. In Windows, ho creato un .batfile con questo nel corpo:

echo|set /p=MyPassword|clip

Dove "MyPassword" è la tua vera password.

Quando si fa doppio clic, questo file copierà la password negli Appunti per un accesso rapido. Meglio di niente!


Se sei disposto a fare qualche lavoro di automazione leggera, usa autoit per avviare l'app VPN e quindi copiare la password nel campo password
Mike Pennington

2
Per favore, qual è il vantaggio echo|set /p=MyPassword|cliprispetto a solo echo MyPassword|clip?
bers

3
@bers Se usi solo echo your_pass| clip, inserirà / aggiungerà anche il nuovo carattere di riga alla fine di your_pass . Provalo tu stesso e quando lo incolli in qualche editor noterai che il cursore si trova sulla riga successiva (se hai un editor in grado di mostrare nuovi caratteri di linea, come Notepad ++ o SciTE , usalo e vedrai CRLF su Windows alla fine di your_pass ). Ma l'attuale soluzione di MikeZ funziona perfettamente (come un modo per copiare una password negli appunti).
informatik01,

1
@ informatik01 Grazie per la spiegazione!
bers

1
(1) L'eccellente spiegazione di @ informatik01 non affronta completamente la necessità di echo|all'inizio della riga di comando. Il motivo è che set /pè il comando per leggere un valore (una riga) dall'input standard. Senza echo|, il set /p=MyPassword|clipcomando si sarebbe seduto in silenzio e avrebbe letto una riga dal terminale. (2) Odio vedere a |senza spazi prima e dopo. Ma attenzione che echo | set /p=MyPassword | clipscriverà MyPassword (con uno spazio finale) negli Appunti. È possibile evitare che con l'aggiunta di citazioni: echo | set /p="MyPassword" | clip.
Scott,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.