はじめに
A君:「毎回GlobalProtect開いて、ユーザー名とパスワード入れて…めんどくさい!」
B先輩:「じゃあMacの“ショートカット”アプリで、自動入力して接続するボタンを作ろう」
A君:「そんなことできるの!?」
B先輩:「できるよ。ただしパスワードはスクリプトに平文で書くから、自分のMacだけで使うのが安全」
この記事では、Macのショートカットアプリを使って、GlobalProtect VPNに自動で接続できるランチャーを作ります。
ワンクリックでVPN接続が始まり、ユーザー名とパスワードも自動入力されます。
必要なもの
- macOS(ショートカットアプリが入っている)
- GlobalProtect がインストール済み
- 自分のユーザー名とパスワード(今回は平文でスクリプト内に保存)
作り方
1. ショートカットを作成
A君:「まずはショートカットを作るんだね」
B先輩:「そう、Macに最初からある“ショートカット”アプリを開こう」
- ショートカットアプリを起動
- 右上の 「+」 で新規ショートカットを作成
- 名前は例として GlobalProtectに接続 にする
2. AppleScriptを追加
A君:「どうやって自動入力させるの?」
B先輩:「AppleScriptっていう、Mac用の自動化スクリプトを使うよ」
- 右の検索バーに 「AppleScript」 と入力
- 「AppleScriptを実行」 を右側のワークスペースに追加
- 下記コードを貼り付け(ユーザー名とパスワードは自分用に変更)
property userAccount : "あなたのユーザー名"
property userPassword : "あなたのパスワード"
on run {}
try
clickMenuBarItem()
clickButton("接続", "Connect")
waitForLoginWindow()
enterCredentials(userAccount, userPassword)
pressEnterKey()
on error errMsg
display alert "An error occurred: " & errMsg
end try
end run
on clickMenuBarItem()
tell application "System Events" to tell process "GlobalProtect"
click menu bar item 1 of menu bar 2
end tell
end clickMenuBarItem
on clickButton(japaneseLabel, englishLabel)
tell application "System Events"
if exists UI element japaneseLabel of window 1 of application process "GlobalProtect" then
click UI element japaneseLabel of window 1 of application process "GlobalProtect"
else if exists UI element englishLabel of window 1 of application process "GlobalProtect" then
click UI element englishLabel of window 1 of application process "GlobalProtect"
end if
end tell
end clickButton
on waitForLoginWindow()
tell application "System Events"
repeat until (exists UI element "キャンセル" of window 1 of application process "GlobalProtect") or ¬
(exists UI element "Cancel" of window 1 of application process "GlobalProtect") or ¬
(exists UI element "接続" of window 1 of application process "GlobalProtect") or ¬
(exists UI element "Connect" of window 1 of application process "GlobalProtect")
delay 0.5
end repeat
end tell
end waitForLoginWindow
on enterCredentials(account, passwd)
set the clipboard to {text:(account as string), Unicode text:account}
tell application "System Events"
keystroke "v" using {command down}
delay 0.3
end tell
pressTabKey()
typePassword(passwd)
end enterCredentials
on pressTabKey()
tell application "System Events"
keystroke (ASCII character 9)
end tell
end pressTabKey
on typePassword(passwd)
set the clipboard to {text:(passwd as string), Unicode text:passwd}
tell application "System Events"
keystroke "v" using {command down}
end tell
end typePassword
on pressEnterKey()
tell application "System Events"
keystroke (ASCII character 13)
end tell
end pressEnterKey
3. 権限を許可する
A君:「これ実行したらエラーが出た!」
B先輩:「Macに“このショートカットでアプリを操作していいよ”って許可をあげないと動かないんだ」
-
システム設定 → プライバシーとセキュリティ → アクセシビリティ
-
ショートカットを追加してON(このショートカット全体に権限を与える)
-
- 初回実行時に表示される「ショートカットが
System Eventsを操作しようとしています」「ショートカットがGlobalProtectを操作しようとしています」はすべて許可
4. Dock・メニューバーに追加(任意)
A君:「Dockから押せたらもっと楽だね」
B先輩:「メニューバーにも置けるとさらに便利だよ」
メニューバーに追加
Dockに追加
動作確認
- Dockまたはメニューバーのアイコンをクリック
- GlobalProtectが開き、自動でユーザー名・パスワードが入力され接続されれば成功
まとめ
A君:「これでVPN接続めっちゃ楽になった!」
B先輩:「そうだね。でも安全に使うならMacはロックしておこう」
- MacのショートカットでAppleScriptを実行すれば、GUIアプリも自動操作できる
- 必要なのは「ショートカット」へのアクセシビリティ許可と、初回の自動操作許可
- Dockに置いてglobeアイコンにすれば、VPNランチャーとしてすぐ使える



