如何查看并导出谷歌浏览器已安装扩展插件列表?

功能定位:为什么必须能“看见”扩展
在合规审计、账号移交、故障回退三类场景里,谷歌浏览器已安装扩展插件列表属于“可复盘”资产。没有清单,就无法证明“曾经装过哪些有权访问网页数据的代码”,也无法在重装后 1:1 还原工作环境。Chrome 135 起,谷歌把扩展详情页并入隐私和安全中心,同时保留 chrome://extensions 实验室入口,为批量导出留出了可脚本��空间。
与“同步”功能不同,导出列表得到的是静态快照,可签入 Git、附在验收报告或交付给客户做“零信任”备查;而同步依赖 Google 账号,可能因域策略或地区性服务中断导致回滚失败。理解这一差异,就能在“要不要导出”之间做出快速判断。
三平台原生查看路径(最短入口)
桌面端(Windows / macOS / Linux)
- 地址栏输入
chrome://extensions回车即可进入“扩展程序”管理页。 - 右上角“开发者模式”开关打开后,才会出现 ID、版本号等元数据列,方便后续脚本抓取。
Android(Chrome 135 稳定版)
地址栏输入同一命令会被重定向到 设置 → 隐私和安全 → 扩展程序,但仅展示已启用的 Kiwi 兼容扩展;系统级 WebView 扩展不显示。若页面空白,说明未安装任何兼容扩展,无需导出。
iOS(Chrome 135)
苹果策略限制,浏览器内核无法加载外部扩展,故设置中无“扩展程序”入口;列表恒为空,可跳过审计。
零脚本导出法:利用 Chrome 内置 JSON
在开发者模式开启状态下,chrome://extensions 页面会注入一个只读对象 chrome.developerPrivate。我们可借 DevTools 一次性复制原始配置,无需第三方工具。
2. 按 Ctrl+Shift+I 调出 DevTools → 切到 Console
3. 粘贴以下回车:
copy(JSON.stringify(await chrome.developerPrivate.getExtensionInfo(),null,2))4. 剪贴板已保存完整 JSON,可直接粘进 VS Code 或审计表格。
该 JSON 包含 id、name、version、enabled、installedBy、permissions 等字段,足够作为“已安装扩展插件列表”的权威快照。经验性观察:JSON 大小每 50 个扩展约 120–150 KB,复制过程在十代 i5 笔记本上亚秒级完成。
命令行批量导出(适合 CI 场景)
企业管理员常需要在数百台办公电脑中统一采集扩展清单。Chrome 135 的策略接口仍保留 --enable-logging 开关,可让浏览器在启动时把扩展信息写入本地日志,再辅以 PowerShell / Bash 解析。
& "C:\Program Files\Google\Chrome\Application\chrome.exe" `
--enable-logging --v=1 --disable-extensions-except=`"C:\audit\empty_ext`"
# 启动后退出,查看 %LOCALAPPDATA%\Google\Chrome\User Data\chrome_debug.log
# 用 Select-String -Pattern 'extension_id' 即可批量提取 ID 列表
边界提醒:日志级别 --v=1 会记录大量渲染细节,务必在采集后及时关闭,避免磁盘占用膨胀。
借助策略模板(Group Policy)集中拉取
如果终端已加入公司域,可直接下发“ExtensionSettings”策略,强制回传扩展清单到管理员控制台。做法是在 GPO 中启用
计算机配置 → 管理模板 → Google → Google Chrome → 扩展 → 配置扩展设置下载地址
把审计服务器 HTTPS 地址写进字段,Chrome 会在每日首次启动时 POST 本机扩展数组。服务器端收到后入库,即可生成全公司“谷歌浏览器已安装扩展插件列表”大盘。该接口官方文档可查,且自 Chrome 89 起未变更字段格式,可放心依赖。
例外与取舍:哪些扩展不会被列出
- 外部协议安装的“幽灵扩展”:通过注册表
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Chrome\Extensions预装,若用户从未启用,开发者模式界面默认折叠,JSON 中enabled=false,但仍会记录,可放心审计。 - 企业强制黑名单(ExtensionInstallBlacklist)中的扩展,一旦被策略禁用,Chrome 将直接卸载代码,JSON 不再出现,属于“物理消失”,审计结果为“未安装”。
- Kiosk 模式或 Guest 窗口下运行的临时扩展,退出即清空,也不会留下痕迹;如需审计,必须在普通用户会话内执行。
与第三方备份工具协同的最小权限原则
市面上存在“一键备份扩展 CRX”的第三方工具,需要“读取并修改所有网站数据”权限,极易成为新的攻击面。若坚持采用,请遵循以下最小化原则:
- 仅授予“启动时运行”而非“持续后台”;
- 备份完毕立即禁用或卸载;
- 对导出的 CRX 进行 SHA-256 比对,确保与 Chrome Web Store 官方哈希一致。
经验性观察:2026 年初,某知名备份插件因作者账号被盗,被推送恶意代码,导致大量企业内网回传 Cookie。可见“能导出”不等于“应常驻”。
故障排查:控制台报 developerPrivate is not defined
| 现象 | 可能原因 | 验证与处置 |
|---|---|---|
| Console 报未定义 | 未开启开发者模式 | 回到扩展页,打开右上角开关后刷新 |
| JSON 返回空数组 | 策略禁用开发者私有 API | 检查 Group Policy 中 DeveloperToolsAvailability 值 |
| 复制命令卡死 | 扩展数量 >400,序列化耗时 | 改用分批 ID 拉取:getExtensionInfo({id: Array}) |
适用 / 不适用场景清单
• 企业年审、SOC 2 备证
• 个人重装系统前快照
• 前端团队统一开发环境
• 已 root 的 Android 容器(WebView 扩展不可见)
• 临时 Guest 会话
• 黑名单策略已卸载的扩展
最佳实践 6 条(检查表)
- 每月固定一天,用 DevTools 脚本生成 JSON 并 Git commit,保留历史 diff。
- JSON 文件与 CRX 安装包分离存储,避免“代码+配置”混合导致哈希漂移。
- 对高敏感岗位(财务、法务)启用策略级黑名单,确保审计结果为“零扩展”。
- 导出后立即用
jq '.[] | .id'提取 ID 列表,与上月做 set diff,快速发现新增项。 - 在 macOS 上,把脚本封装成快捷指令(Quick Action),右键 Chrome 图标即可“备份扩展”。
- Windows 终端可结合任务计划程序,开机 5 分钟后执行 PowerShell 拉取,日志写入 Event Viewer,方便 SIEM 收集。
版本差异与迁移建议
Chrome 135 之后,chrome.developerPrivate 仍被标记为“实验性”,但谷歌在官方 Issue Tracker 承诺“扩展审计接口在 Manifest V3 时代继续保留”。换言之,未来 12 个月内上述脚本仍有效;若后续迁移至 declarative API,预计会提供新的 chrome.extensions.management 只读方法,变动成本应低于 5 行代码。
FAQ(结构化数据)
导出后的 JSON 包含权限字段,是否涉密?
权限字段仅描述扩展声明的 API,不含用户数据;但为稳妥,建议在内网仓库加密存储。
扩展被策略强制卸载,还能找回 ID 吗?
不能。Chrome 会物理删除代码与元数据,审计结果将显示“未安装”,需事前拉取快照。
家用电脑无开发者模式,能否一键导出?
可临时开启开发者模式,执行脚本后再关闭,不影响扩展运行状态,也不会清除用户数据。
收尾:下一步行动
谷歌浏览器已安装扩展插件列表的导出并不复杂,却常被忽视。读完本文,你可以立刻打开 chrome://extensions,用 10 秒钟复制第一份 JSON 快照;接着把脚本写进定时任务,或把策略地址填进 GPO,让下个月的审计报告自动生成。清单在手,无论迁移、重装还是合规举证,都能一句话回答:“扩展资产可控,变更记录可查。”
📺 相关视频教程
网页上看到喜欢的视频,不能下载怎么办?程序员教你一招,让你为所欲为!
