企业支持
Visual Studio Code 可以作为各种规模企业团队的开发工具。作为 IT 管理员,您可以配置 VS Code,以在整个组织内实现一致性和兼容性。
网络:常用主机名
VS Code 中的一些功能需要网络通信才能工作,例如自动更新机制、查询和安装扩展以及遥测。为了让这些功能在代理环境中正常工作,您必须正确配置产品。
有关所需域名,请参阅网络常用主机名列表。
配置允许的扩展
从 VS Code 1.96 版本开始,支持配置允许的扩展。
VS Code 中的 extensions.allowed
应用级设置使您能够控制可以在用户计算机上安装哪些扩展。如果未配置该设置,则允许所有扩展。如果配置了该设置,则所有未列出的扩展都将被阻止安装。如果您阻止了已安装的扩展或版本,该扩展将被禁用。
要为您的组织集中管理允许的扩展,请使用您的设备管理解决方案配置 AllowedExtensions
策略。此策略会覆盖用户设备上的 extensions.allowed
设置。此策略的值是一个包含允许的扩展的 JSON 字符串。
{
"github": true,
"microsoft": true
}
以下是管理员如何使用本地组策略编辑器在本地配置 AllowedExtensions
策略的示例。
如果策略值中存在语法错误,extensions.allowed
设置将不会被应用。您可以在 VS Code 中检查窗口日志以查找错误(按 ⇧⌘P (Windows, Linux Ctrl+Shift+P) 并输入显示窗口日志 (Show Window Log))。
允许的扩展设置值
extensions.allowed
设置包含一个扩展选择器列表,用于确定允许或阻止哪些扩展。您可以指定以下类型的扩展选择器:
- 允许或阻止来自某个发布者的所有扩展
- 允许或阻止特定的扩展
- 允许特定的扩展版本
- 允许特定的扩展版本和平台
- 仅允许扩展的稳定版本
- 仅允许来自某个发布者的稳定扩展版本
以下 JSON 代码片段展示了不同 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。目前不支持使用通配符。
您可以使用 microsoft
作为发布者 ID 来指代所有由 Microsoft 发布的扩展,即使它们可能有不同的发布者 ID。
不支持版本范围。如果您想允许一个扩展的多个版本,您必须单独指定每个版本。要按平台进一步限制版本,请使用 @
符号指定平台。例如:"rust-lang.rust-analyzer": ["5.0.0@win32-x64", "5.0.0@darwin-x64"]
。
选择器越具体,优先级越高。例如,"microsoft": true
和 "microsoft.cplusplus": false
会允许所有 Microsoft 扩展,但 C++ 扩展除外。
不支持重复的键值。例如,同时包含 "microsoft": true
和 "microsoft": false
会导致策略无效。
如果您想了解有关 VS Code 扩展的更多信息,请参阅扩展文档。
配置自动更新
update.mode
VS Code 设置控制 VS Code 在新版本发布时是否自动更新。更新从 Microsoft 在线服务获取。
该设置有以下选项:
none
- 禁用更新manual
- 禁用自动检查更新,但用户可以手动检查更新start
- 仅在 VS Code 启动时检查更新,禁用自动检查更新default
- 启用自动检查更新,并定期在后台运行
要为您的组织集中管理自动更新,请使用您的设备管理解决方案配置 UpdateMode
策略。此策略会覆盖用户设备上的 update.mode
设置。此策略的值是一个包含更新模式的字符串。
配置遥测级别
VS Code 的 telemetry.telemetryLevel 设置控制 VS Code 的遥测、第一方扩展的遥测以及参与的第三方扩展的遥测。一些第三方扩展可能不遵循此设置。阅读更多关于我们收集的数据的信息。
all
- 发送使用数据、错误和崩溃报告error
- 发送一般错误遥测和崩溃报告crash
- 发送操作系统级别的崩溃报告off
- 禁用所有产品遥测
要为您的组织集中管理遥测,请使用您的设备管理解决方案配置 TelemetryLevel
策略。此策略会覆盖用户设备上的 telemetry.telemetryLevel
设置。此策略的值是一个包含遥测级别的字符串。
集中管理 VS Code 设置
您可以通过设备管理解决方案集中管理 VS Code 的特定功能,以确保其满足您组织的需求。当您指定一个 VS Code 策略时,其值会覆盖用户设备上相应的 VS Code 设置。
VS Code 目前提供以下策略来控制管理员控制的功能:
策略 | 描述 | VS Code 设置 | 可用版本 |
---|---|---|---|
AllowedExtensions |
指定可以安装哪些扩展。 | extensions.allowed |
1.96 |
UpdateMode |
启用 VS Code 更新的自动安装。 | update.mode |
1.67 |
TelemetryLevel |
指定遥测数据级别。 | telemetry.telemetryLevel |
1.99 |
EnableFeedback |
配置反馈机制(问题报告器和调查)。 | telemetry.feedback.enabled |
1.99 |
ChatAgentMode |
启用代理模式。 | chat.agent.enabled |
1.99 |
ChatAgentExtensionTools |
启用使用第三方扩展提供的工具。 | chat.extensionTools.enabled |
1.99 |
ChatPromptFiles |
在聊天中启用提示和指令文件。 | chat.promptFiles |
1.99 |
ChatMCP |
启用对模型上下文协议 (MCP) 服务器的支持。 | chat.mcp.access |
1.99 |
ChatToolsAutoApprove |
为代理模式工具启用全局自动批准。 | chat.tools.global.autoApprove |
1.99 |
CopilotReviewSelection |
为编辑器中的选定内容启用代码审查。 | github.copilot.chat.reviewSelection.enabled |
1.104 |
CopilotReviewAgent |
为拉取请求和已更改的文件启用 Copilot 代码审查。 | github.copilot.chat.reviewAgent.enabled |
1.104 |
ChatToolsTerminalEnableAutoApprove |
为终端工具启用基于规则的自动批准。 | chat.tools.terminal.autoApprove |
1.104 |
Windows 上的组策略
VS Code 支持基于 Windows 注册表的组策略。从 VS Code 1.69 版本开始,每个版本都附带一个 policies
目录,其中包含可以添加到以下路径的 ADMX 模板文件:C:\Windows\PolicyDefinitions
。请确保同时将相应的 adml
文件复制到 C:\Windows\PolicyDefinitions\<your-locale>
目录。
安装策略定义后,管理员可以使用本地组策略编辑器来管理策略值。
诸如 Microsoft Intune 之类的产品可用于大规模集中管理设备策略。
策略可以在计算机级别和用户级别设置。如果两者都设置了,计算机级别将优先。当策略值被设置时,该值会覆盖在任何级别(默认、用户、工作区等)配置的 VS Code 设置值。
macOS 上的配置文件
配置文件用于管理 macOS 设备上的设置。配置文件是一个 XML 文件,包含与可用策略相对应的键/值对。这些配置文件可以使用移动设备管理 (MDM) 解决方案进行部署,也可以手动安装。
从 VS Code 1.99 版本开始,每个版本都附带一个示例 .mobileconfig
文件。该文件位于 .app
包内的 Contents/Resources/app/policies
路径下。使用文本编辑器手动编辑或删除策略,以匹配您组织的要求。
要查看 .app
包的内容,请在 Finder 中右键单击应用程序(例如 /Applications/Visual Studio Code.app
)并选择显示包内容。
字符串策略
下面的示例演示了如何配置 AllowedExtensions
策略。在示例文件中,策略值开始时为空(不允许任何扩展)。
<key>AllowedExtensions</key>
<string></string>
在 <string>
标签之间添加定义您策略的相应 JSON 字符串。
<key>AllowedExtensions</key>
<string>{"microsoft": true, "github": true}</string>
其他策略,如 UpdateMode
,接受一组预定义值中的一个字符串。
<key>UpdateMode</key>
<string>start</string>
布尔策略
布尔策略值用 <true/>
或 <false/>
表示。
<key>EnableFeedback</key>
<true/>
要省略某个策略,请从 .mobileconfig
文件中删除其键/值对。例如,要不强制执行更新模式策略,请删除 UpdateMode
键及其后的 <string></string>
标签。
提供的 .mobileconfig
文件会初始化该版本 VS Code 中可用的所有策略。请删除任何不需要的策略。
如果您不编辑或删除示例 .mobileconfig
中的某个策略,该策略将以其默认的(限制性)策略值被强制执行。
通过在 Finder 中双击 .mobileconfig
配置文件,然后在系统偏好设置的通用 > 设备管理中启用它来手动安装配置文件。从系统偏好设置中删除该配置文件将从 VS Code 中移除这些策略。
有关配置文件的更多信息,请参阅 Apple 的文档。
附加策略
我们的目标是将当前的 VS Code 设置提升为策略,并紧密遵循现有设置,以便命名和行为保持一致。如果有更多策略的制定请求,请在 VS Code 的 GitHub 仓库中提交一个 issue。团队将确定是否已有相应的设置来控制该行为,或者是否应创建一个新设置来控制期望的行为。
设置带有预装扩展的 VS Code
您可以设置带有预装扩展集(引导)的 VS Code。当您准备一个预装了 VS Code 的机器镜像、虚拟机或云工作站,并希望特定扩展能立即对用户可用时,此功能非常有用。
预装扩展的功能目前仅在 Windows 上可用。
按照以下步骤引导扩展:
-
在 VS Code 安装目录中创建一个名为
bootstrap\extensions
的文件夹。 -
下载您想要预装的扩展的 VSIX 文件,并将它们放入
bootstrap\extensions
文件夹中。 -
当用户首次启动 VS Code 时,
bootstrap\extensions
文件夹中的所有扩展都将在后台静默安装。
用户仍然可以卸载预装的扩展。卸载扩展后重启 VS Code 不会重新安装该扩展。
常见问题
VS Code 是否支持 Linux 上的配置文件?
目前没有支持 Linux 的计划。如果您对 Linux 上的配置文件感兴趣,请在 VS Code 的 GitHub 仓库中提交一个 issue,并分享您场景的详细信息。