automator 网络诊断核心是封装常用命令为一键操作,聚焦触发快、结果明、权限稳;需授权辅助功能与完全磁盘访问,适配sequoia限制,规避ui操作不稳、路径权限及超时卡死等问题。
用 automator 做 macos 网络诊断测试,核心是把常用命令封装成一键可触发的操作,避免每次开终端输指令。重点不在“自动化多高级”,而在于“触发快、结果明、权限稳”——尤其要解决 applescript 控制 terminal 全屏、服务权限授权、输出可视化这几个实际卡点。
快速启动带诊断脚本的全屏终端
这是最实用的入口:热键一按,Terminal 自动打开、执行网络检测、立刻全屏显示结果。
- 打开 Automator,新建「快速操作」(不是工作流程或应用程序)
- 添加「运行 AppleScript」动作,粘贴以下脚本(适配 macOS Sequoia 15+):
activate
do script "echo '=== 网络基础诊断 ==='; networksetup -listallhardwareports | head -5; echo; echo '=== 公网 IP 与 DNS 解析 ==='; curl -s https://api.ipify.org; echo; nslookup google.com | head -4"
end tell
tell application "System Events"
keystroke "f" using {command down, control down}
end tell
- 保存为“网络快诊”,然后去「系统设置 → 键盘 → 键盘快捷键 → 服务」里分配组合键(如 ⌘⌥N)
- 首次运行前,必须在「系统设置 → 隐私与安全性 → 辅助功能」中勾选 Terminal 和 Automator
生成结构化诊断报告(无需手动复制)
把无线诊断工具的分析结果自动导出为 .wdreport 文件,方便存档或发给 IT 支持。
macOS 微信消息自动化工具。通过 GUI 自动化实现:发送消息给指定联系人、读取聊天内容、监控新消息。适用于需要自动化微信操作的场景,如定时发送、批量回复、消息备份等。依赖 peekaboo 进行屏幕截图和 UI 交互。仅支持 macOS。开源地址:https://github.com/chairmanmia...
- 新建 Automator「应用程序」类型文稿
- 添加「运行 Shell 脚本」动作,设置为 /bin/zsh,输入:
# 等待 2 秒确保窗口就绪(实测需缓冲)
sleep 2
# 模拟 Option+点击 Wi-Fi 图标后选择“监视”的行为不可靠,改用命令行触发监控(需提前允许辅助功能)
osascript -e 'tell application "System Events" to click menu item "监视" of menu "文件" of menu bar 1 of application process "Wireless Diagnostics"'
- 更稳妥的做法是:用 Automator 启动无线诊断后,人工点一次“监视”,再加一个「暂停」动作(设为 90 秒),最后用「运行 AppleScript」执行:
do shell script "mkdir -p ~/Desktop/NetReports; cp /var/tmp/WirelessDiagnostics*.tar.gz ~/Desktop/NetReports/ 2>/dev/null" - 这样能确保日志文件被复制到桌面指定文件夹,不依赖 GUI 点击稳定性
定时自动连通性验证(后台静默运行)
适合服务器或长期驻留设备,每 5 分钟 ping 一次网关和 DNS,异常时弹窗提醒。
- 新建「快速操作」,添加「运行 Shell 脚本」,内容如下:
if ping -c 2 -W 1 "$GATEWAY" &>/dev/null && ping -c 2 -W 1 1.1.1.1 &>/dev/null; then
exit 0
else
osascript -e 'display notification "网络异常:网关或公网不可达" with title "Automator 网络监控"'
- 保存后,在「登录项」中添加该快速操作(需先转成.app,方法:用 Automator 新建「应用程序」,仅包含一个「运行 Shell 脚本」并调用上一步保存的 workflow 路径)
- 或配合 launchd 实现真正后台定时:将脚本存为 /usr/local/bin/net-check.sh,再配置 plist 放入 ~/Library/LaunchAgents/ 下,设 StartInterval 为 300(秒)
关键注意事项
Automator 网络诊断不是万能胶,几个坑必须提前填平:
- macOS Sequoia 对 AppleScript 的 UI 控制限制变严,所有涉及「点击菜单」「切换窗口」的操作,必须在「辅助功能」中明确授权对应 App;Terminal 还需额外在「完全磁盘访问」中启用
- 无线诊断工具生成的 .tar.gz 日志默认存在 /var/tmp,该路径非用户可写,直接 cp 可能失败;建议先用 do shell script "sudo cp …" 并配置免密 sudo(仅限可信环境)或改用 ~/Library/Caches 临时中转
- Networksetup 命令在某些 M 系列 Mac 上对 Thunderbolt 以太网适配器返回空值,建议优先用 ifconfig enX | grep "status:" 判断物理链路是否 active
- 所有涉及 curl 或 ping 的脚本,务必加超时参数(-m 3 或 -W 1),避免因网络卡死导致 Automator 进程挂起










