Cisco AnyConnect v3.1 AutoLogin

10

Ich habe einige Probleme mit Cisco AnyConnect v3.1 in Bezug auf die automatische Anmeldung. Ich muss jeden Tag den ganzen Tag mit einem einzelnen Server verbunden bleiben, und es wäre super, wenn ich nicht jeden Tag mein 16-Zeichen-Passwort ausgraben müsste. Ich würde mich freuen, wenn sich der Client automatisch anmeldet, aber ich bin mir zu diesem Zeitpunkt noch nicht einmal sicher, ob dies möglich ist.

Ich sollte beachten, dass mir die AnyConnect-Software von unserem Hosting-Unternehmen zur Verfügung gestellt wird und ich oder niemand in meiner Organisation Zugriff auf die Verwaltungsseite der Dinge hat. Ich habe gesehen, dass es in den Interwebs eine solche Software namens "AnyConnect Profile Editor" gibt, aber Cisco hat mich ohne ein gültiges Login nicht herunterladen lassen.

Ich habe meine Einstellungen %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmlsowie %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLmeine Profileinstellungen überprüft. Keiner von beiden zeigte irgendwo, dass ich meine Anmeldeinformationen speichern könnte. Ich habe sogar ein paar Mal mein Profil gebrochen, indem ich versucht habe, mein Passwort an einigen Stellen zu ändern. Das hat nicht funktioniert.

Zuletzt fand ich diesen Forumsbeitrag, in dem "Fingerabdrücke" des Client- und Serverzertifikats sowie ein sogenanntes SDI-Token angegeben waren.

Haftungsausschluss: Ich bin tagsüber ein Front-End-Webentwickler und es ist ziemlich lange her, dass ich selbst Netzwerkmanagement betreiben musste. Entschuldigung für die Noob-Frage!

MikeZ
quelle
1
Dies ist normalerweise eine Richtlinie, die von den Personen festgelegt und gesteuert wird, die den Anyconnect-Zugriff verwalten. Da Sie angegeben haben, dass Sie keinen Zugriff auf diesen Teil der Konfiguration haben, bezweifle ich, dass wir viel tun können, um Ihnen zu helfen. Und dies ist wahrscheinlich kein Thema als "Endbenutzer" -Frage.
Brett Lykins
Angemessene Frage mit guten Details ... lassen Sie uns zu Super User
Mike Pennington

Antworten:

16

Hier ist mein Skript zum Starten von Cisco AnyConnect Mobility Client v3.1 und zum automatischen Anmelden. Speichern Sie dieses Skript als FILENAME.vbs , ersetzen Sie PASSWORD durch Ihr Kennwort, ersetzen Sie bei Bedarf den Pfad zur VPN-Client-Exe (wahrscheinlich nicht), und Sie müssen möglicherweise auch die 2. Ruhezeit anpassen, abhängig von Ihrer Verbindungsgeschwindigkeit (meine funktioniert) zuverlässig bei 5000, aber Ihre benötigen möglicherweise weniger / mehr Zeit, um nach Hause zu wählen. Ich habe meine an meine Taskleiste geheftet, aber Sie können sie auch als Hotkey verwenden.

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}"
RADA
quelle
1
Eine schöne Lösung! Ich habe einige zusätzliche TABs , ENTERs und Sleeps für meinen speziellen Fall eingefügt und es hat perfekt funktioniert. Für meine Maschine und Internetverbindung (300 Mbit runter und rauf) habe ich alle Ruhezeiten auf nur eine halbe Sekunde (500 Millisekunden) reduziert und jetzt bekomme ich superschnell eine VPN-Verbindung! Vielen Dank!
informatik01
1
Hinweis: Wenn Ihr Passwort die Zeichen%! (^ ~ + Enthält, müssen Sie {und} um sie setzen.
Jeroenk
4

Ich benutze etwas in diese Richtung:

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%

( Update: Warum die Klammern herum echo 0? Dies sollte Sie daran erinnern, wenn Sie eine andere Wahl treffen als 0diese 1>oder 2>eine besondere Bedeutung haben, umzuleiten stdoutoder stderr, aber nicht zu wiederholen 1oder 2. Also bleiben wir mit ( echo 0).) Auf der sicheren Seite .

Dies ist etwas prägnanter:

(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

Wenn Sie jedoch dasselbe ohne eine temporäre Datei erreichen möchten, funktioniert dies bei mir nicht - ich würde mich interessieren, warum:

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

Update: Dies funktioniert über /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

Alle diese Varianten hängen natürlich von der Konfiguration Ihres Servers ab (insbesondere von der VPN-Gruppe, die Sie auswählen müssen). Um herauszufinden, was Sie eingeben müssen, rufen Sie einmal vpncli.exeohne Parameter auf, beginnen Sie mit connect your.host.nameund notieren Sie sich, wozu Sie aufgefordert werden.

Update: Dies hat den zusätzlichen Vorteil, dass es vollständige Freiheit in Bezug auf Server, Benutzername und Passwort bietet und keine Schlafwerte benötigt (was immer schwierig ist, wenn Ihr System mit etwas anderem beschäftigt ist).

bers
quelle
2
Der Schalter -s ist in Version 3.1 des Clients nicht verfügbar. Haben Sie Version 4.1? Ist diese Version irgendwo öffentlich verfügbar? Ich habe keine gültige Lizenz zum Herunterladen von der Cisco-Website.
SzilardD
Ja, ich habe Version 4+ verwendet. Ich kenne jedoch keine legale öffentliche Quelle (wahrscheinlich aufgrund von Exportbeschränkungen).
Bers
3

Ich beantworte meine eigene Frage mit dieser "meh" -Antwort - es ist nicht das, wonach ich gesucht habe, und ich akzeptiere gerne eine andere Antwort, die meine ursprüngliche Frage besser beantworten kann.

Da ich mit automatischen Anmeldungen kein Glück hatte, war das nächstbeste, was ich mir vorstellen konnte, mein lächerlich langes Passwort automatisch in meine Zwischenablage kopieren zu lassen. In Windows habe ich eine .batDatei mit folgendem Inhalt erstellt:

echo|set /p=MyPassword|clip

Wobei "MyPassword" Ihr aktuelles Passwort ist.

Wenn Sie darauf doppelklicken, kopiert diese Datei Ihr Passwort in Ihre Zwischenablage, um sich schnell anzumelden. Besser als nichts!

MikeZ
quelle
Wenn Sie bereit sind, einige leichte Automatisierungsarbeiten durchzuführen , starten Sie die VPN-App mit autoit und kopieren Sie das Kennwort in das Kennwortfeld
Mike Pennington,
2
Bitte, was ist der Vorteil echo|set /p=MyPassword|clipgegenüber nur echo MyPassword|clip?
Bers
3
@bers Wenn Sie nur verwenden echo your_pass| clip, wird auch das neue Zeilenzeichen am Ende Ihres Passes eingefügt . Probieren Sie es einfach selbst aus und wenn Sie es in einen Editor einfügen, werden Sie feststellen, dass sich der Cursor in der nächsten Zeile befindet (wenn Sie einen Editor haben, der neue Zeilenzeichen wie Notepad ++ oder SciTE anzeigen kann , verwenden Sie ihn und Sie sehen CRLF an Windows am Ende von your_pass ). Die aktuelle Lösung von MikeZ funktioniert jedoch einwandfrei (um ein Passwort in die Zwischenablage zu kopieren).
informatik01
1
@ informatik01 Danke für die Erklärung!
Bers
1
(1) Die ausgezeichnete Erklärung von @ informatik01 geht nicht vollständig auf die Notwendigkeit von echo|am Anfang der Befehlszeile ein. Der Grund ist, dass dies set /pder Befehl ist, einen Wert (eine Zeile) von der Standardeingabe zu lesen. Ohne würde echo|der set /p=MyPassword|clipBefehl still sitzen und eine Zeile vom Terminal lesen. (2) Ich hasse es, |vorher und nachher ein Leerzeichen zu sehen . Aber Vorsicht , dass echo | set /p=MyPassword | clipschreibt MyPassword (mit einem Leerzeichen am Ende) in die Zwischenablage. Sie können dies verhindern, indem Sie Anführungszeichen hinzufügen : echo | set /p="MyPassword" | clip.
Scott