
У меня возникли некоторые трудности с Cisco AnyConnect v3.1 в отношении автоматического входа. Мне приходится оставаться подключенным к одному серверу весь день каждый день, и было бы здорово, если бы мне не приходилось каждый день выкапывать свой 16-символьный пароль. Я бы хотел, чтобы клиент входил в систему автоматически, но на данный момент я даже не уверен, что это возможно.
Я должен отметить, что программное обеспечение AnyConnect предоставлено мне нашей хостинговой компанией, и ни я, ни кто-либо в моей организации не имеет доступа к управлению. Я видел, что в Интернете есть такое программное обеспечение под названием "AnyConnect Profile Editor", но Cisco не позволила мне загрузить его без действительного входа в систему.
Я пытался %appdata%\local\cisco\cisco anyconnect secure mobility client\preferences.xml
просмотреть свои предпочтения, а также %programdata%\Cisco\Cisco AnyConnect Secure Mobility Client\Profile\ANYCONNECT.XML
настройки профиля. Ни один из них не показал, что я смогу хранить свои учетные данные. Я даже несколько раз взламывал свой профиль, пытаясь втиснуть свой пароль в разные места. Это не сработало, поди разберись.
Наконец, я нашелэтот пост на форумекоторый, по-видимому, определял «отпечатки» сертификатов клиента и сервера, а также нечто, называемое токеном SDI.
Отказ от ответственности: днем я работаю веб-разработчиком интерфейсов, и прошло довольно много времени с тех пор, как мне приходилось заниматься сетевым администрированием самостоятельно. Извините за нубский вопрос!
решение1
Я использую что-то вроде этого:
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
Вот мой скрипт для запуска Cisco AnyConnect Mobility Client v3.1 и автоматического входа в систему. Сохраните этот скрипт какИМЯ ФАЙЛА.vbs, заменять ПАРОЛЬна свой пароль, замените путь к исполняемому файлу VPN Client, если это необходимо (вероятно, нет), и вам также может потребоваться настроить второе время сна в зависимости от скорости вашего соединения (моя работает надежно на 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}"
решение3
Я отвечаю на свой собственный вопрос этим ответом «так себе» — это не то, что я искал, и я с радостью приму другой ответ, который сможет лучше ответить на мой изначальный вопрос.
Поскольку мне не повезло с автоматическими входами, лучшее, что я мог придумать, — это автоматическое копирование моего нелепо длинного пароля в буфер обмена. В Windows я создал файл .bat
со следующим текстом в теле:
echo|set /p=MyPassword|clip
Где «MyPassword» — ваш фактический пароль.
При двойном щелчке этот файл скопирует ваш пароль в буфер обмена для быстрого входа. Лучше, чем ничего!