在你的组织内部署 Teams Chat Exporter
面向 IT 管理员
Teams Chat Exporter 是一款面向用户的导出工具,完全在浏览器中以登录用户的身份运行。它无需应用注册、无需 Microsoft Graph 管理员同意,也无需任何租户级更改。你可以全员部署它,并用你现有的浏览器管理来加以控制。
扩展 ID
- Chrome:
jmghclbfbbapimhbgnpffbimphlpolnm - Edge:
phlomfiieaggnbfpacmjmidcjdlaiplp - Firefox:
n.gedizaydindogmus@gmail.com
强制安装
使用你现有的浏览器策略管理。
- Chrome 和 Edge:通过 Group Policy 或 Intune 将扩展 ID 添加到
ExtensionInstallForcelist。 - Firefox:在
policies.json(或你的等效管理方式)中使用ExtensionSettings策略,并填入上面的 Firefox 附加组件 ID。
各项权限及其必要性
以下是本扩展请求的权限,取自已发布的清单。每一项都在用户自己的设备上、以登录用户的身份运行。
- scripting:在导出时向活动的 Teams 标签页注入一个小型辅助脚本,以获取内容脚本无法触及的内嵌图片(Cookie 按 Teams 的图片主机进行了分区隔离)。不会加载任何外部代码。
- activeTab:在导出时读取活动的 Teams 标签页,以调用 Teams 自家的消息 API,仅在 API 不可用时回退到 DOM。不读取其他标签页,不在后台读取。
- downloads、downloads.open:当用户点击导出时,通过浏览器的“另存为”对话框保存导出文件,并从弹窗历史中重新打开已保存的文件。仅限于扩展自己创建的下载 ID。
- storage:在本地存储导出偏好(格式、语言、包含的部分、日期筛选)。仅由弹窗读取,绝不发送到设备之外。
- offscreen(仅 Chrome 和 Edge):一个隐藏的离屏文档将 emoji 栅格化以用于 PDF 输出,并生成用于保存大文件的 blob URL,两者都完全在设备上完成。Firefox 不使用它。
主机访问
本扩展仅联系 Microsoft 主机,且仅限于一次导出所需的那些。清单列出了每一种 Teams 变体以及少数几个 Microsoft 媒体主机,以便该工具能跨租户类型工作。单次运行只与用户登录的那个租户的唯一 Teams 源(活动标签页)通信,并且仅为某次对话实际包含的项目去访问媒体主机。
- Teams web 源:
teams.microsoft.com、teams.cloud.microsoft、teams.live.com、teams.microsoft.us(GCC High),外加.mcas.ms代理和主权云(.us、.cn)变体。每次运行只使用登录租户的源。 graph.microsoft.com(政府云为.us):解析参与者的显示名称,仅在用户开启“包含头像”(默认关闭)时获取他们的个人照片。*.asm.skype.com:在个人版 Teams Free 账户的消息中粘贴的内嵌图片,仅当某条消息含有此类图片时。*.sharepoint.com/.us:通过回形针附加的图片文件,仅为让图片出现在导出中而下载。其他文件类型保留为链接,不会下载。- 可选
<all_urls>:默认关闭。仅当用户启用设置中的“图片获取回退”开关时才在运行时请求,该开关用于在 Teams 的图片代理无法访问时恢复链接预览缩略图。
数据处理
没有任何数据流向第三方或开发者的服务器。消息及其媒体使用用户现有的会话从 Microsoft 自家的服务读取,在设备上格式化,并通过浏览器的“另存为”对话框保存,由用户选择文件夹和文件名。没有代理、没有云端环节,扩展中也没有任何形式的分析或遥测。它以登录用户的身份运行,使用该用户本就拥有的访问权限。
源代码与许可证
基于 MIT 许可证开源。阅读代码或自行构建: github.com/gediz/teams-web-chat-exporter。发布历史见 更新日志.