2

Я использую VPN-сервис моей школы для серфинга по netflix. Я должен подключиться к VPN большую часть времени. Моя школа использует Cisco AnyConnect Secure Mobility Client. Я должен вводить пароль и принимать баннер при каждом подключении. Есть ли способ автоматизировать это соединение на OS X?

2 ответа2

1

Если вы используете OS X для управления соединением:

Причина, по которой это происходит, заключается в том, что блок Cisco, к которому вы подключаетесь, форсирует взаимодействие. Это на самом деле параметр агрегатора Cisco VPN, который обеспечивает безопасность. Apple не предусматривает обхода (Apple Script/Automator) этого в рамках соглашения, заключенного Cisco с Apple (по мнению Cisco и Apple). Я исследовал это раньше, и это был ответ, который мне дали обе стороны.

То же самое верно для клиента Cisco OS X VPN.

0

Да, вы можете автоматизировать это с помощью AppleScript.

Вот скрипт, который я использую:

-- 1. Place in ~/Library/Scripts and enable the Applescript menu via the Applescript Editor
--    (Or export to .app to run from spotlight.)
-- 2. Substitute "vpn.example.com", "username" and "redacted" for your VPN server and password
-- 3. Open Security & Privacy System Preferences, go to Privacy, Accessibility
-- 4. Enable Applescript Editor and System UI Server (or for this .app if so exported)
-- 5. Trigger script from the menu (or run from spotlight)
-- 6. Enjoy being connected
-- 7. Run script again to close connection


-- AnyConnect now refered to as targetApp
set targetApp to "Cisco AnyConnect Secure Mobility Client"


-- Determine if AnyConnect is currently running
tell application "System Events"
    set processExists to exists process targetApp
end tell


-- Close connection if running; else start connection and fill in password
if processExists is true then
    tell application targetApp
        quit
    end tell
else
    tell application targetApp
        activate
    end tell

    tell application "System Events"
        repeat until (window 1 of process targetApp exists)
            delay 1
        end repeat
        tell process targetApp
            keystroke ("vpn.example.com" as string)
            keystroke return
        end tell
        repeat until (window 2 of process targetApp exists)
            delay 1
        end repeat
        tell process targetApp
            keystroke (tab) using {shift down}
            keystroke ("username" as string)
            keystroke tab
            keystroke ("redacted" as string)
            keystroke return
        end tell
        delay 1
        tell process targetApp
            keystroke return
        end tell

    end tell
end if

Это сценарий, который я нашел и настроил; Я не уверен, кто является первоначальным автором, поскольку есть несколько версий, плавающих вокруг. Я получил его с https://gist.github.com/twksos/44b45abf5263635776ec

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .