需组合系统报告、终端命令、Homebrew/mas/pkgutil及人工核查五种方法:一用系统报告导出GUI应用全量视图;二用mdfind扫描全系统.app包并提取路径与元数据;三用brew list --cask和mas list补全第三方安装;四用pkgutil --pkgs及lsbom解析pkg安装记录;五人工筛查~/Applications等非标路径。
要对 macos 系统做软件审计,导出一份完整、可复用的已安装软件清单,不能只靠点几下鼠标。关键在于覆盖所有安装渠道——系统自带、app store、homebrew(含 cask)、pkg 安装器、手动拖拽应用,以及可能被忽略的用户级 app。下面这几种方式组合使用,能生成结构清晰、带来源和路径信息的审计清单。
用系统报告导出权威 GUI 应用视图
这是最稳妥的起点,系统原生索引,信息结构化且可信度高:
- 点击左上角苹果图标 →「关于本机」→「系统报告…」
- 左侧边栏展开「软件」→「应用程序」,右侧即显示全部识别到的 .app
- 列表含名称、版本、获得方式(App Store / 开发者 ID / 未知)、最后使用时间、安装路径
- 按 Command+A 全选 → Command+C 复制,粘贴到 Numbers 或 Excel 中,可按「获得方式」筛选分类
终端命令扫描全系统 .app 包并提取元数据
系统报告可能漏掉未注册或非标准路径的 GUI 应用,mdfind 能穿透 Spotlight 索引盲区:
- 运行
mdfind "kMDItemKind == 'Application'"扫描全盘所有 .app - 加管道提取关键字段:
mdfind "kMDItemKind == 'Application'" | xargs -I {} mdls -name kMDItemDisplayName -name kMDItemVersion -name kMDItemPath {} 2>/dev/null - 如需纯名称去重列表并保存为桌面文件:
mdfind "kMDItemKind == 'Application'" | sed 's/\.app.*$/.app/' | sort -u > ~/Desktop/app_list.txt - 注意:部分老旧或无签名应用可能不写入 kMDItemVersion,输出为空不代表未安装
补全 Homebrew 与 App Store 渠道记录
这两类应用常不在系统报告中完整体现,必须单独调用对应工具:
- Homebrew CLI 工具:
brew list --formula > ~/Desktop/brew_formulas.txt - Homebrew GUI 应用(cask):
brew list --cask > ~/Desktop/brew_casks.txt - App Store 应用(需先安装
mas):mas list > ~/Desktop/appstore_apps.txt(执行前运行brew install mas并mas signin your@apple.com) - 若想生成可迁移的脚本化清单,用
brew bundle dump --file ~/Desktop/Brewfile,该文件可在新机一键还原
查清 pkg 安装器部署的底层软件
很多企业工具、驱动、开发环境通过 .pkg 安装,它们不生成 .app,但会注册 receipt,是审计重点:
- 列出所有已注册 pkg 包 ID:
pkgutil --pkgs - 按关键词筛选,例如查 Zoom:
pkgutil --pkgs | grep -i zoom - 查看某 pkg 实际安装了哪些文件:
lsbom /private/var/db/receipts/com.tencent.qq.bom(需先确认 bom 文件存在) - 读取安装时间与目标路径:
plutil -p /private/var/db/receipts/com.tencent.qq.plist 2>/dev/null
手动核查易遗漏区域
自动化工具无法覆盖所有情况,需人工兜底:
- 检查
~/Applications目录(用户专属应用,系统报告有时不索引) - 打开访达,前往「前往」→「前往文件夹」→ 输入
/opt、/usr/local、/Library/Application Support,查找独立二进制或工具包 - 留意「启动台」中长按显示 × 图标的 App,它们多为 App Store 来源,但可能未出现在系统报告「最近使用」列中
- 脚本类应用(如用「脚本编辑器」导出的 .app)可能藏在桌面或文档夹,需结合
find ~ -name "*.app" -maxdepth 3 2>/dev/null补扫


















