Автозапис Cisco AnyConnect v3.1


10

У мене виникають труднощі з Cisco AnyConnect v3.1 щодо автоматичного входу. Я маю щодня залишатись на зв’язку з одним сервером, і було б супер, якби мені не потрібно було копати свій 16-ти символьний пароль щодня. Я б хотів, щоб клієнт увійшов автоматично, але на даний момент я навіть не впевнений, що це можливо.

Слід зазначити, що програмне забезпечення AnyConnect мені надає наша хостингова компанія, і я, ні хтось із моєї організації, не має доступу до управлінської сторони речей. Я бачив, що на інтерверті є така програма, яка називається "Редактор профілів AnyConnect", але Cisco не дозволив мені завантажити без дійсного логіну.

Я хотів %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xmlпереглянути свої вподобання, а також %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XMLпереглянути свої налаштування профілю. Жодне з них ніде не показало, що я зможу зберігати свої облікові дані. Я навіть декілька разів зламав свій профіль, намагаючись місцями заграти свій пароль. Це не вийшло, зрозумійте.

І нарешті, я знайшов цю сторінку на форумі, яка, здавалося, вказує клієнтський та серверний "відбитки", а також щось, що називається маркер SDI.

Відмова: Я щоденний веб-розробник, і пройшло досить тривалий час, оскільки мені довелося робити будь-яке управління мережею для себе, вибачте за питання про noob!


1
Зазвичай це політика, яка встановлюється та контролюється людьми, які керують доступом Anyconnect. Як ви заявили, що у вас немає доступу до цієї частини конфігурації, я сумніваюся, що ми можемо зробити, щоб допомогти вам. І це, мабуть, поза темою як питання "кінцевого користувача".
Бретт Лікінс

Розумне запитання з хорошою деталізацією ... перейдемо до Супер Користувача
Майка Пеннінгтона

Відповіді:


16

Ось мій сценарій для запуску Cisco AnyConnect Mobility Client v3.1 та входу в систему автоматично. Збережіть цей скрипт як FILENAME.vbs , замініть PASSWORD своїм паролем, замініть шлях до EXE-клієнта VPN, якщо потрібно (можливо, це не так), а також вам може знадобитися відрегулювати 2-й час сну, а також залежно від швидкості підключення (моя працює надійно на 5000, але вашому може знадобитися менше / більше часу для набору дому). Я зафіксував свою панель завдань, але ви також можете її клацнути.

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
Досить приємне рішення! Я поставив кілька додаткових таблиць TAB , ENTER і сон для мого конкретного випадку, і це спрацювало чудово. Під час мого зв'язку з Інтернетом (вниз і вище 300 Мбіт) я скоротив весь час сну до лише половини секунди (500 мілісекунд), і тепер я отримую VPN-з'єднання дуже швидко! Дякую!
informatik01

1
Примітка: якщо ваш пароль містить символи%! (^ ~ +, Вам потрібно покласти {і} навколо них.
jeroenk

4

Я використовую щось у цьому напрямку:

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%

( Оновлення: Чому круглі дужки навколо echo 0? Це повинно нагадувати вам, коли ви робите інший вибір, ніж 0те, 1>чи 2>мають особливе значення, перенаправлення stdoutабо stderr, відповідно, - але не повторюється, 1або 2. Таким чином, ми залишаємось у безпечній частині з ( echo 0).)

Це трохи більш стисло:

(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

Однак якщо ви хочете досягти того самого, що не має тимчасового файлу, для мене це не працює - мені було б цікаво, чому:

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

Оновлення: це працює, знайдене за допомогою https://stackoverflow.com/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

Усі ці варіанти, звичайно, залежать від конфігурації вашого сервера (особливо групи VPN, яку ви повинні обрати). Щоб дізнатися, що вам потрібно ввести, зателефонуйте vpncli.exeбез будь-яких параметрів один раз, почніть з цього connect your.host.name, а потім зазначте, що вам потрібно.

Оновлення: Це має додаткову перевагу - пропонувати повну свободу щодо сервера, імені користувача та пароля, і не покладається на будь-які значення сну (що завжди важко, якщо ваша система, як правило, зайнята чимось іншим).


2
Перемикач -s недоступний у версії 3.1 клієнта. У вас версія 4.1? Чи доступна ця версія десь доступна? У мене немає дійсної ліцензії, щоб завантажувати її з веб-сайту Cisco.
SzilardD

Так, я використовував версію 4+. Однак я не знаю жодного легального публічного джерела (можливо, через обмеження експорту).
Берс

3

Я відповідаю на власне запитання цією "мех" відповіддю - це не те, про що я пішов, і я з радістю прийму ще одну відповідь, яка може краще відповісти на моє початкове запитання.

Оскільки з автоматичними входами мені не пощастило, наступне найкраще, що я міг би придумати, - це те, щоб мій смішно довгий пароль автоматично було скопійовано у мій буфер обміну. У Windows я створив .batфайл із цим у тілі:

echo|set /p=MyPassword|clip

Де "MyPassword" - ваш фактичний пароль.

Після подвійного клацання цей файл скопіює ваш пароль у буфер обміну для швидкого входу. Краще нічого!


Якщо ви готові зробити легку роботу з автоматизації, використовуйте autoit, щоб запустити додаток VPN, а потім скопіюйте пароль у поле пароля
Майк Пеннінгтон

2
Будь ласка, яка перевага echo|set /p=MyPassword|clipпорівняно з справедливою echo MyPassword|clip?
бер

3
@bers Якщо ви користуєтеся лише echo your_pass| clipцим, він також додасть / додасть новий символ рядка в кінці вашого_pass . Просто спробуйте самі, і коли ви вставите його в якийсь редактор, ви помітите, що курсор знаходиться в наступному рядку (якщо у вас є редактор, який може показувати нові символи рядка, наприклад, Блокнот ++ або SciTE , використовуйте його, і ви побачите CRLF на Windows в кінці вашого_пункту ). Але поточне рішення MikeZ працює чудово (як спосіб копіювання пароля до буфера обміну).
informatik01

1
@ informatik01 Дякую за пояснення!
BERS

1
(1) Відмінне пояснення @ informatik01 не повністю відповідає потребі echo|в командному рядку на початку. Причина в тому, що set /pкоманда зчитувати значення (рядок) зі стандартного вводу. Без echo|цього set /p=MyPassword|clipкоманда мовчки сиділа б і читала рядок з терміналу. (2) Я ненавиджу бачити |пробіли до і після. Але будьте обережні, що echo | set /p=MyPassword | clipнапишете MyPassword (з пробілом) у буфер обміну. Ви можете запобігти цьому, додавши лапки: echo | set /p="MyPassword" | clip.
Скотт
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.