在 Macintosh 操作系统(macOS)上登录 Cisco IPSec VPN 时,无法保存密码。

对我来说最好的解决方案是在 Automator 中编写 AppleScript,或从命令行运行它,以自动化登录过程。
Automator 中的 AppleScript
-
打开 Apple 的 Automator,

-
选择
New Document

-
选择
Service
创建的服务默认为receives selectedtext。这意味着您需要选择文本或在文本编辑器中有焦点才能启用该服务。

-
尝试搜索动作
Run AppleScript。然后,将动作拖曳到右侧。

-
将以下代码粘贴到编辑器中,
on run {input, parameters}
set vpn_name to "'your VPN name'"
set user_name to "your username"
set passwd to "your password"
tell application "System Events"
set rc to do shell script "scutil --nc status " & vpn_name
if rc starts with "Disconnected" then
do shell script "scutil --nc start " & vpn_name & " --user " & user_name
delay 3
keystroke passwd
keystroke return
end if
end tell
return input
end run

- 更新脚本中的
vpn_name、username和passwd。
您可以参考下面的屏幕截图来获取 vpn_name,即 VPN (Cisco IPSec)。脚本使用 scutil --nc status 检查 VPN 连接状态,并使用 scutil --nc start 启动 VPN 连接。通常,VPN 登录对话框会在 3 秒内出现。如果您的笔记本电脑速度较慢,请更新 delay 3 中的值。要自动化该过程,请尝试使用播放按钮运行脚本并观察其工作方式。

-
使用名称(如
VPN Login)保存脚本。
在System Preferences -> Keyboard -> Shortcuts中,您可以找到自动化脚本。分配快捷键。默认情况下,脚本在创建期间被分配给文本服务。要使用键盘快捷键,您需要选择一些文本或在启用的文本编辑器中有焦点。

-
尝试从文本编辑器(如 Atom)中选择文本。设置适当的快捷键后,您应该能够自动化 VPN 登录。此脚本应该适用于 Sierra 或更早版本的 macOS,尽管我自己没有在较旧的系统上测试过。如果您在较旧的 macOS 平台上使用此方法有任何结果,请告诉我

从命令行运行 AppleScript
-
打开 Apple 的 Script Editor,

-
选择
New Document -
将以下代码粘贴到编辑器中。请参阅 Automator 中的 AppleScript
set vpn_name to "'your VPN name'"
set user_name to "your username"
set passwd to "your password"
tell application "System Events"
set rc to do shell script "scutil --nc status " & vpn_name
if rc starts with "Disconnected" then
do shell script "scutil --nc start " & vpn_name & " --user " & user_name
delay 3
keystroke passwd
keystroke return
end if
end tell
- 保存脚本。您可以从终端使用
osascript [programfile]运行脚本。
玩得开心!