Mac VPN自动连接脚本(AnyConnect)

公司要求连接机房服务器需要通过vpn进行访问,不同机房之间使用不同的vpn,每次切换都需要手动填写信息,有点啰嗦~

So,通过Mac的applescript实现自动化操作,再配合Alfred4,简直神了~

AppleScript代码如下:

--变量
set VPNServerList to {"1.XXX_VPN","2.XXX_VPN"}
set VPNServer to choose from list VPNServerList with title "服务器列表" with prompt "请选择需要连接的服务器." OK button name "连接" cancel button name "取消" default items {"1.vpn.gmtgo.com:3443"}
if VPNServer is not false then
  if VPNServer contains "1.XXX_VPN" then
    set VPNHost to "vpn.xxx.com"
    set VPNGroup to "ops"
    set VPNUsername to "cgq"
    set VPNPassword to "123456"
  else if VPNServer contains "2.XXX_VPN" then
    set VPNHost to "vpn.xxx.com"
    set VPNGroup to "dev"
    set VPNUsername to "root"
    set VPNPassword to "123456"
  end if

tell application "Cisco AnyConnect Secure Mobility Client"
    activate
end tell
  
set VPNRunning to false
repeat 10 times
    if application "Cisco AnyConnect Secure Mobility Client" is running then
        tell application "System Events"
            tell process "Cisco AnyConnect Secure Mobility Client"
                tell window 2
                    if exists button "Disconnect" then
                        click button "Disconnect"
                        delay 2
                    end if
                    if exists button "Connect" then
                        if exists combo box 1 then
                        tell combo box 1
                            set value to VPNHost
                        end tell
                        end if
                        click button "Connect"
                        set VPNRunning to true
                        delay 1
                        exit repeat
                    end if
                end tell
            end tell
        end tell
    end if
end repeat


if VPNRunning is true then
    set VPNRunning to false
    tell application "System Events"
        tell process "Cisco AnyConnect Secure Mobility Client"
            tell window 3
                tell pop up button 1
                    --your code
                    click
                    delay 0.25
                    tell menu 1
                        click menu item VPNGroup
                        set VPNRunning to true
                    end tell
                end tell
            end tell
        end tell
    end tell
end if

delay 1

if VPNRunning is true then
    set VPNRunning to false
    repeat 10 times
        tell application "System Events"
            tell process "Cisco AnyConnect Secure Mobility Client"
                tell window 3
                    if exists static text "Username:" then
                        tell text field 1
                            set value to VPNUsername
                        end tell
                        set VPNRunning to true
                        exit repeat
                    end if
                end tell
            end tell
        end tell
    end repeat
end if

if VPNRunning is true then
set VPNRunning to false
repeat 10 times
    tell application "System Events"
        tell process "Cisco AnyConnect Secure Mobility Client"
            tell window 3
            if exists static text "Password:" then
                tell text field 2
                set value to VPNPassword
                end tell
                key code 36 -- 按下回车
                set VPNRunning to true
                exit repeat
            end if
            end tell
        end tell
    end tell
    delay 1
end repeat
end if

if VPNRunning is true then
set VPNRunning to false
delay 1
tell application "System Events"
    tell process "Cisco AnyConnect Secure Mobility Client"
        tell window 2
            key code 36 -- 按下回车
            set VPNRunning to true
        end tell
    end tell
end tell
delay 1
end if


if VPNRunning is false then
    display dialog "VPN运行异常,请关闭后重试." with icon caution buttons {"确认"} giving up after 5
end if

end if

Mac VPN自动连接脚本(AnyConnect)
https://www.gmtgo.com/147.html
作者
大帅
发布于
2022年9月16日
许可协议