applescript 无法解锁 macos 登录界面,仅能锁屏;推荐用 do shell script "cgsession -suspend" 实现稳定锁屏,无需 gui 权限,兼容 ventura 和 sonoma;备用方案为 tell application "screensaverengine" to activate,但依赖屏保设置;触发角亦可快速启动屏保。

AppleScript 可以可靠触发 macOS 屏幕保护程序启动,但不能绕过登录界面完成“解锁”——锁屏是可行的,解锁则受系统安全机制严格限制,必须由用户手动输入密码。
推荐方式:用 CGSession 命令锁屏(最稳定)
这是目前最干净、无需 GUI 权限、不弹窗、兼容 Ventura 和 Sonoma 的原生方案:
- 脚本内容只有一行:do shell script "CGSession -suspend"
- 执行后立即黑屏并跳转至登录界面,等效于按 ⌘+Ctrl+Q
- 无需提前开启辅助功能授权,也不依赖屏幕保护程序是否启用
- 前提是系统已设置“唤醒或锁屏时需输入密码”(在「系统设置 → 锁屏」中开启)
备用方式:调用 ScreenSaverEngine(依赖屏保配置)
如果你更习惯用屏幕保护程序逻辑,也可通过 AppleScript 启动当前屏保:
- tell application "ScreenSaverEngine" to activate
- 必须确保「系统设置 → 屏幕保护程序」中设为“开始前:立即”,且勾选“启动后需要密码”
- 若屏保本身不设密码,或延迟时间太长,该方法可能只显示动画而未真正锁住系统
- 相比 CGSession,它对系统设置更敏感,稳定性略低
快捷触发:配合触发角快速启动
不需要写脚本,也能实现“一触锁屏”:
- 进入「系统设置 → 屏幕保护程序 → 触发角」
- 任选一个屏幕角落,下拉菜单中选“启动屏幕保护程序”
- 把鼠标移向该角落,屏保即刻启动;移动鼠标或按键即可退出
- 如需更高安全性,可搭配 Shift/Option 等修饰键使用(例如设为“Shift-启动屏幕保护程序”)
其他可行但需注意的方案
部分方法存在兼容性或权限问题,仅建议作为临时替代:
- 模拟快捷键 ⌘+Ctrl+Q:需提前在「系统设置 → 隐私与安全性 → 辅助功能」中授权 Script Editor 或 Automator
- pmset displaysleepnow:只会关闭显示器,不触发锁屏,容易误以为已锁定
- open ScreenSaverEngine.app:路径较长,不同系统版本路径略有差异,维护成本高











