Как инициировать соединение VPN из командной строки?

9

Я хотел бы сохранить некоторые щелчки мыши и нажатия клавиш, инициируя VPN-подключение из командной строки. Есть ли инструмент для этого в Mac OS X? В идеале он должен принимать имя и пароль VPN-соединения и запускать VPN-соединение.

Обновление: я говорю о встроенном VPN-клиенте для Cisco IPSec VPN.

Петр Штибраны
источник
1
Существует множество протоколов VPN. Мы говорим о протоколах, поддерживаемых встроенной реализацией VPN (PPTP, L2TP или Cisco)?
Сёрен Куклау
Да, я говорю о встроенном VPN-клиенте в Mac, в частности "Cisco IPSec".
Питер Штибраны

Ответы:

10

Ваша лучшая ставка, кажется, AppleScript:

tell application "System Events"
   tell current location of network preferences
       set VPNservice to service "VPN (L2TP) 2" -- name of the VPN service
       if exists VPNservice then connect VPNservice
   end tell
end tell

http://macscripter.net/viewtopic.php?id=22992 )

Что касается ввода имени пользователя и пароля, я не уверен, как вы могли бы сделать это. Дальнейшие сценарии могут получить переднее окно и ввести имя пользователя и пароль, а затем отправить диалоговое окно, но, поскольку у меня нет Cisco VPN для тестирования, я не могу сказать вам, как его настроить.

Если у вас установлен клиент Cisco VPN (который не нужен), вы можете просто использовать эту команду:

open /Applications/VPNClient.app --args -c -user <YourUsername> -pwd <YourPassword> <ProfileNameToConnect>
Дэн Удей
источник
У меня не установлен дополнительный клиент Cisco VPN, я использую встроенный VPN в Mac. Спасибо, я попробую это.
Петр Штибраны
Я бы порекомендовал не ставить пароль в командной строке. Это могут быть прочитаны другими пользователями.
Багамат
@bahamat, конечно, но, поскольку я единственный пользователь на моем компьютере, мне все равно.
Питер Штибраны
Именно то, что я искал, НО, когда я пробую этот скрипт, я получаю «Синтаксическая ошибка: ожидался конец строки, но найден идентификатор», и он выделяет первое вхождение слова «местоположение».
@bahamat, если вы укажете только эту -cопцию, вы получите окно с графическим интерфейсом для имени пользователя и пароля (для профиля по умолчанию).
haridsv