在企业环境中管理扩展
Visual Studio Code 扩展可以提高生产力,但在企业环境中需要仔细管理,以保持安全性和合规性。本文介绍了 IT 管理员如何控制扩展安装、托管私人市场以及将扩展部署到用户的机器上。
配置允许的扩展名
从 VS Code 版本 1.96 开始,支持允许的扩展。
VS Code 支持通过 限制用户在其机器上安装哪些扩展。
如果未配置该设置,将允许所有扩展。如果已配置该设置,未列出的所有扩展将被阻止安装。如果您阻止了一个已安装的扩展或版本,该扩展将被禁用。
例如,仅允许来自github和微软出版商,将以下 JSON 值设置为允许的扩展名政策:
{
"github": 真,
"microsoft": 真
}

如果策略值中有语法错误,扩展允许 设置未应用。您可以在 VS Code 中检查Windows日志以查找错误(按 ⇧⌘P (Windows, Linux Ctrl+Shift+P) 并输入 显示Windows日志)。
允许的扩展设置值
这个扩展允许设置包含一个扩展选择器列表,这些选择器确定允许或阻止哪些扩展。您可以指定以下类型的扩展选择器:
- 允许或阻止所有来自出版商的扩展
- 允许或阻止特定扩展名
- 允许特定的扩展版本
- 允许特定的扩展版本和平台
- 仅允许扩展的稳定版本
- 仅允许来自出版商的稳定扩展版本
以下 JSON 片段展示了不同的示例设置(允许的扩展)设置值:
"extensions.allowed": {
// 允许来自 'microsoft' 出版商的所有扩展。如果该键没有 '.',则表示它是出版商 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"],
// 允许在 Windows 和 macOS 上使用 rust 扩展的 5.0.0 版本
"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"],
// 仅允许 GitHub Pull Requests 扩展的稳定版本
"github.vscode-pull-request-github": "stable",
// 仅允许来自 redhat 出版商的稳定版本
"redhat": "stable",
}
通过其出版商ID指定出版商。如果一个键没有句点 (输入:.),它被视为发布者ID。如果密钥包含句点,则被视为扩展ID。目前不支持使用通配符。
你可以使用微软作为发布者ID,以引用由Microsoft发布的所有扩展,尽管它们可能具有不同的发布者ID。
版本范围不被支持。如果您希望允许扩展的多个版本,您必须单独指定每个版本。要进一步通过平台限制版本,请使用@符号指定平台。例如,&rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]输入:.
选择器越具体,优先级越高。例如,"microsoft": 真和µsoft.cplusplus": false允许所有微软扩展,除了C++扩展。
不支持重复的键值。例如,同时包含"microsoft": 真和"microsoft": 否导致无效的策略。
预安装扩展
你可以通过一组预安装的扩展 (自动安装) 来设置 VS Code。这种功能在你准备机器映像、虚拟机或预装了 VS Code 和特定扩展的云工作站时非常有用,这样用户可以立即使用这些扩展。
目前,仅在 Windows 上支持预安装扩展。
请按照以下步骤进行扩展初始化:
-
创建文件夹
引导\扩展在 VS Code 安装目录。 -
下载 VSIX 文件 以预安装您希望安装的扩展,并将它们放置在
引导\扩展文件夹。 -
当用户第一次启动 VS Code 时,所有扩展在
引导\扩展文件夹在后台静默安装。
用户仍然可以卸载预安装的扩展。卸载扩展后重启 VS Code 不会重新安装该扩展。
举办私人扩展市场
专用市场使企业能够自我托管和在组织内部分发扩展,以满足组织的安全和合规要求。专用市场与 VS Code 扩展体验集成,使用户可以轻松发现和自动更新专用扩展。
从 VS Code Server 或 VS Code for the Web 连接不被支持。
使用案例
- 将内部扩展私下托管以保护知识产权。
- 为开发人员提供访问精选或所有扩展的机会,来自Visual Studio Marketplace,即使在互联网连接受限的环境中。
- 从外部来源下载和重新托管扩展,以应用企业特定的验证和安全标准。了解 微软如何保护您的软件供应链。
主要特点
- 自我托管:将内部和下载的扩展托管在您的基础设施上,例如 Azure 或 Kubernetes。
- 简单部署:将私有市场作为无状态的Docker容器部署,不需要外部数据库。
- 灵活的存储:使用任何文件系统或 Azure Artifacts 发布和管理扩展。
- 上游:选择自动包含来自Visual Studio市场的公共扩展。通过设置允许列表来允许或禁止选择的扩展。
- 重新托管:选择下载和托管公共扩展,以增强安全性并支持没有公共互联网连接的环境(空气间隙)。
- 集中发布:使用Windows和macOS上的组策略将私有市场推广到您的团队。
- 集成安装和更新:从 VS Code 直接搜索和安装扩展,并在私人市场中自动更新新版本。
- 跨平台支持:兼容 Windows、macOS 和 Linux 上的 VS Code 桌面版。
可用性
专用市场目前仅对 GitHub Enterprise 客户开放。VS Code 用户必须使用 GitHub Enterprise 或 Copilot Enterprise/Business 帐户登录才能访问专用市场。
入门指南
参考部署和功能指南获取部署说明、脚本和开发环境配置。如果您有任何问题或需要帮助,请联系私人市场支持。