跳到正文
FunCoding

搜索

搜索文档、Skill 和 MCP

选择与部署管理渠道

对比服务器、原生 MDM 和平台文件,以及合并与离线范围。

可以组合多种部署方式,例如设备端放置必须持续生效的限制,服务器端维护经常更新的插件政策。组合后应逐键核对最终值,不只检查某个配置文件。

三种渠道

渠道适用范围主要特点
Server-managed通过企业获得 Copilot 许可的已登录用户;包含受支持 cloud agent仓库审查与历史、enterprise team overrides
原生 MDM装有设备政策的本地客户端,不依赖许可证来自哪里macOS / Windows 的设备组投放,可在登录前生效
File-based收到文件的本地客户端,不依赖许可证来自哪里各平台可用,适合容器、Codespaces 等环境

CLI 请求服务器设置失败且没有缓存时,该会话无法使用服务器政策。必须在没有服务器响应时仍存在的限制,应使用设备 MDM 或文件渠道。

服务器部署

在已选定的治理仓库更新 copilot/managed-settings.json,通过组织流程提交到默认分支。受支持客户端通常约一小时取得变更,重启或重新登录会触发立即刷新。

部署还包括 copilot/team-mappings.json 和被引用的 copilot/teams/ 文件,详见团队覆盖。

原生 MDM 编码

原生 MDM 不是分发 JSON 文件。Windows 使用 HKEY_LOCAL_MACHINE\SOFTWARE\Policies\GitHubCopilot 下 REG_SZ 值;macOS 使用 com.github.copilot domain 的 forced managed preferences 字符串。Linux 不支持这种原生 MDM 方式,使用文件部署。

所有值都必须是字符串。嵌套键使用点分名称,普通字符串直接保存,布尔值、数组和对象则先编码为 JSON 文本:

键原生字符串内容
permissions.disableBypassPermissionsModedisable
sandbox.enabledtrue
enabledPlugins{"PLUGIN-NAME@MARKETPLACE-NAME":true}

通过现有 MDM 工具投放到设备组。客户端每小时检查更新,无需为每次更新重启;VS Code 测试时可运行 Developer: Sync Account Policy 主动检查。

文件部署

平台文件路径
macOS/Library/Application Support/GitHubCopilot/managed-settings.json
Windows%ProgramFiles%\GitHubCopilot\managed-settings.json
Linux/etc/github-copilot/managed-settings.json

文件使用 JSON schema。CLI 在 macOS / Linux 要求普通文件、root 所有,不能 group-writable / world-writable,也不能是 symlink。未收到文件的设备不受这份文件约束。

通用部署指南要求更新后重启客户端加载文件;不要把 MDM 的免重启刷新直接套用到文件部署。

多渠道优先级

通用部署指南按 MDM → server-managed → file-based → user-level 排序。例外是 sandbox 与 permissions.deny / ask / allow,按更严格方向组合。

CLI 专门参考将设备 MDM 与服务器按键合并,并讨论每小时重新应用托管设置,但没有在该段独立展开所有文件场景;不要从“设备优先”推定任意本地 JSON 都能覆盖服务器。具体权限的 union / intersection 与沙箱下限见托管权限和沙箱管理。