管理企业环境中的扩展

Visual Studio Code 扩展提升了生产力,但在企业环境中需要谨慎管理以维护安全性和合规性。本文将介绍IT管理员如何控制扩展安装、托管私有市场,以及向用户机器部署扩展。

配置允许的扩展

注释

从 VS Code 版本 1.96 起,支持允许的扩展。

VS Code 支持通过

扩展。允许
  • 在VS代码中打开
  • 在VS Code Insiders中开放
ORG 应用范围设置。你可以根据发布商、特定扩展、版本和平台选择性地允许扩展。

如果设置未配置,所有扩展都是允许的。如果设置是配置好的,所有未列出的扩展都会被阻止安装。如果你屏蔽了已经安装的扩展或版本,该扩展就会被禁用。

组织可以通过使用允许的扩展 政策。通过设备管理解决方案,管理员可以部署并执行该策略覆盖所有受管理设备。这会覆盖任何用户配置

扩展。允许
  • 在VS代码中打开
  • 在VS Code Insiders中开放
针对单个设备的ORG设置。

例如,只允许来自GitHub以及微软发布者,将以下 JSON 值设置为允许的扩展政策:

{
  "github": true,
  "microsoft": true
}

从本地组策略编辑器配置 AllowedExtensions 的截图。

重要

如果策略值存在语法错误,扩展。允许设置未被应用。你可以在VS Code中查看窗口日志是否有错误(按⇧⌘P(Windows,Linux的Ctrl+Shift+P并输入显示窗口日志)。

允许的扩展设置值

扩展。允许setting 包含一系列扩展选择器,用于决定哪些扩展被允许或被阻挡。你可以指定以下类型的扩展选择器:

  • 允许或阻止出版商的所有扩展
  • 允许或阻断特定的扩展
  • 允许特定扩展版本
  • 允许特定扩展版本和平台
  • 只允许扩展的稳定版本
  • 只允许发布商提供的稳定扩展版本

以下 JSON 片段展示了不同型号的示例settings(extensions.allowed)设定价值观:

"extensions.allowed": {
    // Allow all extensions from the 'microsoft' publisher. If the key does not have a '.', it means it is a publisher ID.
    "microsoft": true,

    // Allow all extensions from the 'github' publisher
    "github": true,

    // Allow prettier extension
    "esbenp.prettier-vscode": true,

    // Do not allow container tools extension
    "ms-azuretools.vscode-containers": false,

    // Allow only version 3.0.0 of the eslint extension
    "dbaeumer.vscode-eslint": ["3.0.0"],

    // Allow multiple versions of the figma extension
    "figma.figma-vscode-extension": ["3.0.0", "4.2.3", "4.1.2"],

    // Allow version 5.0.0 of the rust extension on Windows and macOS
    "rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"],

    // Allow only stable versions of the GitHub Pull Requests extension
    "github.vscode-pull-request-github": "stable",

    // Allow only stable versions from redhat publisher
    "redhat": "stable",
}

请通过出版商ID指定出版商。如果键没有句号(.),它被视为出版商ID。如果密钥带有句号,则视为扩展ID。目前不支持使用万能牌。

提示

你可以使用微软作为发布者ID,用来指代Microsoft发布的所有扩展,尽管它们可能有不同的发布者ID。

不支持版本范围。如果你想允许多个版本的扩展,必须分别指定每个版本。为了进一步限制各平台版本,请使用符号指定平台。例如,@“rust-lang.rust-analyzer”: [“5.0.0@win32-x64”, “5.0.0@darwin-x64”].

选择者越具体,优先级越高。例如,“微软”:确实如此以及“Microsoft.cplusplus”: false允许使用所有 Microsoft 扩展,唯独不允许 C++ 扩展。

不支持重复的键值。例如,包含两者“微软”:确实如此以及“微软”:错误结果是政策无效。

预安装扩展

你可以用预装的扩展(引导程序)来设置 VS Code。当你准备机器映像、虚拟机或云工作站时,预装了VS Code且用户可以立即使用特定扩展,这一功能非常有用。

注释

目前仅支持 Windows 上的预装扩展。

请按照以下步骤启动扩展:

  1. 创建一个文件夹自助/扩展在VS Code安装目录中。

  2. 下载你想预装的扩展的VSIX文件,然后放到自助/扩展文件夹。

  3. 当用户首次启动 VS Code 时,所有扩展自助/扩展文件夹会在后台静默安装。

用户仍然可以卸载预装的扩展。卸载扩展后重启VS Code不会重新安装扩展。

托管一个私人扩展市场

私有市场使企业能够在组织内自托管和分发扩展,以满足组织的安全和合规要求。私有市场与VS Code扩展体验集成,方便用户发现并自动更新私有扩展。

注释

不支持从 VS Code Server 或 VS Code for the Web 连接。

使用场景
  • 私下托管内部扩展以保护知识产权。
  • 即使在网络连接受限的环境中,开发者也能访问Visual Studio Marketplace的部分或全部扩展。
  • 从外部来源下载并重新托管扩展,以应用企业特定的验证和安全标准。看看Microsoft如何保护您的软件供应链
主要特征
  • 自托管:在您自己的基础设施(如 Azure 或 Kubernetes)上托管内部和下载的扩展。
  • 简单部署:将私有市场部署为无状态的 Docker 容器,无需外部数据库。
  • 灵活存储:使用任何文件系统或Azure工件发布和管理扩展。
  • 上流:选择自动包含Visual Studio市场的公共扩展。通过设置允许列表来允许或拒绝选择扩展。
  • 重托管:选择下载和托管公共扩展,以增强安全性,支持无公共互联网连接的环境(空隙)。
  • 集中部署:在Windows和macOS上使用组策略将私有市场部署到团队。
  • 集成安装与更新:可直接从 VS Code 搜索并安装扩展,私有市场中新版本会自动更新。
  • 跨平台支持:兼容Windows、macOS和Linux上的VS Code桌面版。

可获得性

私有市场目前对GitHub Enterprise客户开放。VS Code 用户必须使用 GitHub Enterprise 或 Copilot Enterprise/Business 账户登录才能访问私人市场。

入门

有关部署说明、脚本和开发环境配置,请参阅部署与功能指南。如果您有疑问或需要帮助,请联系私人市场支持