选择与部署管理渠道
对比服务器、原生 MDM 和平台文件,以及合并与离线范围。
This page has not been translated into English yet. The original Chinese version is shown below.
可以组合多种部署方式,例如设备端放置必须持续生效的限制,服务器端维护经常更新的插件政策。组合后应逐键核对最终值,不只检查某个配置文件。
三种渠道
| 渠道 | 适用范围 | 主要特点 |
|---|---|---|
| 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.disableBypassPermissionsMode | disable |
sandbox.enabled | true |
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 与沙箱下限见托管权限和沙箱管理。