Connexion automatique Cisco AnyConnect v3.1

10

J'ai un peu de difficulté avec Cisco AnyConnect v3.1 en ce qui concerne la connexion automatique. Je dois rester connecté à un seul serveur toute la journée et ce serait super si je n'avais pas à fouiller mon mot de passe de 16 caractères chaque jour. J'aimerais que le client se connecte automatiquement, mais je ne suis même pas sûr à ce stade que c'est une possibilité.

Je dois noter que le logiciel AnyConnect m'est fourni par notre société d'hébergement, et moi-même ni personne de mon organisation n'avons accès à la gestion des choses. J'ai vu qu'il existe un tel logiciel sur les interwebs appelé "AnyConnect Profile Editor", mais Cisco ne me laisserait pas télécharger sans une connexion valide.

Je suis allé %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmlà revoir mes préférences ainsi qu'à %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLrevoir mes paramètres de profil. Aucun de ceux-ci n'a montré nulle part que je serais en mesure de stocker mes informations d'identification. J'ai même cassé mon profil plusieurs fois en essayant de décaper mon mot de passe par endroits. Ça n'a pas marché, allez comprendre.

Enfin, j'ai trouvé ce message sur le forum qui semblait spécifier des "empreintes" de certificat client et serveur ainsi que quelque chose appelé un jeton SDI.

Avertissement: je suis un développeur Web front-end de jour et cela fait longtemps que je n'ai pas eu à gérer de réseau pour moi, désolé pour la question noob!

MikeZ
la source
1
Il s'agit généralement d'une stratégie définie et contrôlée par les personnes qui gèrent l'accès Anyconnect. Comme vous avez déclaré que vous n'avez pas accès à cette partie de la configuration, je doute que nous puissions faire beaucoup pour vous aider. Et c'est probablement hors sujet comme une question "d'utilisateur final".
Brett Lykins
Question raisonnable avec beaucoup de détails ... migrons vers Super User
Mike Pennington

Réponses:

16

Voici mon script pour lancer Cisco AnyConnect Mobility Client v3.1 et vous connecter automatiquement. Enregistrez ce script sous FILENAME.vbs , remplacez PASSWORD par votre mot de passe, remplacez le chemin vers l'exe VPN Client si nécessaire (probablement pas), et vous devrez peut-être également ajuster le 2ème temps de veille en fonction de la vitesse de votre connexion (le mien fonctionne fiable à 5000, mais le vôtre peut avoir besoin de moins / plus de temps pour appeler à la maison). J'ai le mien épinglé dans ma barre des tâches, mais vous pouvez également le raccourcir.

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
la source
1
Une très bonne solution! J'ai mis quelques TAB , ENTER et sleep supplémentaires pour mon cas spécifique et cela a parfaitement fonctionné. Pour ma machine et ma connexion Internet (300Mbit de haut en bas), j'ai réduit tous les temps de sommeil à seulement une demi-seconde (500 millisecondes) et maintenant je reçois une connexion VPN super rapide! Je vous remercie!
informatik01
1
Remarque: si votre mot de passe contient les caractères%! (^ ~ +, Vous devez mettre {et} autour d'eux.
jeroenk
4

J'utilise quelque chose dans ce sens:

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%

( Mise à jour: pourquoi les parenthèses autour echo 0? Cela devrait vous rappeler, lorsque vous faites un choix différent de 0, que 1>ou 2>ont une signification spéciale, redirigeant stdoutou stderr, respectivement - mais pas en écho 1ou 2. Donc nous restons du bon côté avec ( echo 0).)

C'est un peu plus concis:

(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

Cependant, si vous souhaitez réaliser la même chose sans fichier temporaire, cela ne fonctionne pas pour moi - je serais intéressé, pourquoi:

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

Mise à jour: cela fonctionne, trouvé via /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

Toutes ces variantes dépendent bien sûr de la configuration de votre serveur (en particulier du groupe VPN que vous devez choisir). Pour savoir ce que vous devez saisir, appelez vpncli.exesans aucun paramètre une fois, commencez par connect your.host.name, puis notez ce qui vous est demandé.

Mise à jour: Cela a l'avantage supplémentaire d'offrir une liberté totale en ce qui concerne le serveur, le nom d'utilisateur et le mot de passe, et ne repose sur aucune valeur de veille (ce qui est toujours difficile si votre système a tendance à être occupé avec autre chose).

bers
la source
2
Le commutateur -s n'est pas disponible dans la version 3.1 du client. Avez-vous la version 4.1? Cette version est-elle accessible au public quelque part? Je n'ai pas de licence valide pour le télécharger à partir du site Web de Cisco.
SzilardD
Oui, j'ai utilisé la version 4+. Cependant, je ne connais aucune source publique légale (probablement en raison de restrictions à l'exportation).
bers
3

Je réponds à ma propre question avec cette réponse "meh" - ce n'est pas ce que je recherchais, et j'accepterai volontiers une autre réponse qui peut mieux répondre à ma question d'origine.

Comme je n'ai pas eu de chance avec les connexions automatiques, la meilleure chose à laquelle je pouvais penser était de copier automatiquement mon mot de passe ridiculement long dans mon presse-papiers. Sous Windows, j'ai créé un .batfichier avec ceci dans le corps:

echo|set /p=MyPassword|clip

Où "MyPassword" est votre mot de passe réel.

Lorsque vous double-cliquez dessus, ce fichier copiera votre mot de passe dans votre presse-papiers pour une connexion rapide. Mieux que rien!

MikeZ
la source
Si vous êtes prêt à faire quelques travaux d'automatisation légers, utilisez autoit pour démarrer l'application VPN, puis copiez le mot de passe dans le champ de mot de passe
Mike Pennington
2
S'il vous plaît, quel est l'avantage echo|set /p=MyPassword|clippar rapport à juste echo MyPassword|clip?
bers
3
@bers Si vous utilisez juste, echo your_pass| clipil mettra / ajoutera également le nouveau caractère de ligne à la fin de votre_pass . Essayez-le vous-même et lorsque vous le collez dans un éditeur, vous remarquerez que le curseur se trouve sur la ligne suivante (si vous avez un éditeur qui peut afficher de nouveaux caractères de ligne, comme Notepad ++ ou SciTE , utilisez-le et vous verrez CRLF sur Windows à la fin de votre_pass ). Mais la solution actuelle de MikeZ fonctionne parfaitement (comme moyen de copier un mot de passe dans le presse-papiers).
informatik01
1
@ informatik01 Merci pour l'explication!
bers
1
(1) L'excellente explication de @ informatik01 ne répond pas entièrement au besoin de echo|au début de la ligne de commande. La raison en est que set /pc'est la commande pour lire une valeur (une ligne) à partir de l'entrée standard. Sans echo|, la set /p=MyPassword|clipcommande s'asseyait silencieusement et lisait une ligne du terminal. (2) Je déteste voir un |sans espaces avant et après. Mais attention, cela echo | set /p=MyPassword | clipva écrire MyPassword (avec un espace de fin) dans le presse-papiers. Vous pouvez éviter cela en ajoutant des citations: echo | set /p="MyPassword" | clip.
Scott