Skip to content

Include support for system-wide mandatory/default settings #27972

Open

Description

@ajansveld
  • VSCode Version: 1.12.2
  • OS Version: Windows 10

Steps to Reproduce:

  1. Install vscode as an administrator
  2. Launch vscode as a different (regular) user

It is currently not possible for an administrator to define mandatory and/or default settings that apply to all users/workspaces. This would be very helpful in a corporate/enterprise setting where we want users to have a consistent experience, or where the infrastructure demands certain configs (e.g. "update.channel": "none").

Suggestion:
a) Define an environment variable that points to a json file with mandatory settings, which override user/workspace settings.
b) Define another environment variable that points to a json file with default settings, which get copied to the user settings file when a user launches vscode for the first time.

If suggestion a) is difficult to implement I will settle for b) and use an extension (e.g. Fetch User Environment) to manage the mandatory settings.

Activity

  1. added this to the Backlog milestone on Jun 5, 2017
  2. kieferrm commented on Jun 5, 2017

    @kieferrm
    Member
  3. HollisTech commented on Nov 30, 2017

    @HollisTech

    VSCode is great, but in managed environments the inability to provide and control default settings for all users is a big problem.

  4. dibr0006 commented on Dec 6, 2017

    @dibr0006

    A few weeks ago I intended to migrate from sublimetext to vsc, but this issue was a show stopper. For me (developer and administrator) it is unusable without default settings / the ability to be "installed" (for all users) by copying one single folder.

  5. rhyspaterson commented on Jan 15, 2018

    @rhyspaterson

    There also appears to be no simple way to install extensions for all users. On top of this, even the per-user offline extensions needs to be deployed as a subsequent step post-install:

    Start-Process "VSCodeSetup-x64-1.19.2.exe" -ArgumentList /silent, /mergetasks='!runcode,addcontextmenufiles,addcontextmenufolders,addtopath' -Wait
    
    # VISX files downloaded to \extensions in the installation root for offline install.
    Get-ChildItem "$PSScriptRoot\extensions" | % {
        Start-Process "C:\Program Files\Microsoft VS Code\bin\code.cmd" -ArgumentList "--install-extension $($_.FullName)" -Wait
    }
    

    But, log on as a different user and there are no extensions.

    It would be great if the installer could automatically deploy these during the installation, or at least allow for a multi-user deployment of the extension. I think the Visual Studio VSIXInstaller.exe can/could do this with /admin? I appreciate a system-level / all users installation would prevent individual users from upgrading or managing the extension for themselves in the future, but in a managed development environment that's not such a bad thing (especially with additional security requirements such as white-listing). Even being able to point it to a local UNC share by default would be handy. Some development workstations don't have Internet access anyway.

    Given this is replacing the PowerShell ISE in core 6+, it's so far looking pretty difficult to deploy this in large enterprise environments while retaining some manner of consistency.

  6. hb9tst commented on Feb 8, 2018

    @hb9tst

    VS Code has become a very good and powerful development environment, much lighter than huge programs like the "real" Visual Studio or Eclipse. Unfortunately, the absence of system-wide configuration capabilities (and especially of system-wide extension installation) is a big problem for managed environments. Of course, everything can be done with appropriate login (or program startup) scripts, but I see that more like DIY rather than a professional solution. In my opinion, a system-wide configuration file and extension directory would be a very good starting point (GPO support would of course be welcome too... but this is less urgent).

  7. timoline commented on Jun 2, 2018

    @timoline

    Any progess on this?
    Like all above, it's hard (no way) to deploy VSCode in a large environment and have a manner of consistency.

  8. HollisTech commented on Sep 11, 2018

    @HollisTech

    This feature request has been sitting here for over a year. Is this even difficult? How do we escalate issues?

  9. devantic commented on Jan 24, 2019

    @devantic

    Problem for me too.

    I installed powershell core and changed terminal.integrated.shell.windows to pwsh.exe but hitting F1
    the Terminal: Select Default shell still shows the path to the powershell V1 exe.

    Would like to be able to change terminal.integrated.shell.windows in default settings to use the new powershell.

    Atm every time I switch between Wsl and back to powershell I have to update user settings to pwsh.exe again!

  10. GreatTeacherOni commented on Mar 28, 2019

    @GreatTeacherOni

    I'd also like to use VSCode natively installed on Windows 10 while editing and working on files in the WSL system without ruining my linux permissions etc. (we use Linux projects on GitHub). On my 8 GB ram laptop a Ubuntu VM runs kinda slow.

  11. pasqui23 commented on Aug 14, 2019

    @pasqui23

    On NixOS we have the vscode-with-extensions,which allow to package VSCode with preinstalled extensions,but then you can't install extensions from the VSCode UI.
    This is problematic as a few extensions needs to be fixed for use on NixOS,and this feature would allow to use extensions both from the nix store (with all the paths fixed) and the larger VSCode marketplace

  12. God-damnit-all commented on Nov 23, 2019

    @God-damnit-all

    A way to select the installation directory would also be nice.

  13. 2 remaining items

  14. kylegentle commented on Mar 24, 2021

    @kylegentle

    Hi Kai Maetzel (@kieferrm) and Rachel Macfarlane (@RMacfarlane), what would it take to get this feature added to the roadmap?

    If it's not feasible to have it roadmapped for the vscode team, is there anyone familiar with this part of the codebase who could provide guidance for how it might be implemented by an intrepid community member?

  15. benwa commented on May 19, 2021

    @benwa

    We either need GPO support, or deployable json files that supersede user-configured settings.

  16. PeterHodges15 commented on Jul 22, 2021

    @PeterHodges15

    Gosh, Every user, Every machine, Every Setting....
    No global settings (or extensions/modules) is a burden.

  17. mldailey commented on Jul 22, 2021

    @mldailey

    We run ~100 shared linux machines used by students and researchers. The ability to not override settings administratively is a huge impediment to wider use of vscode. We'd love to use this more heavily - especially with our CS students, but can't, due to this deficiency.

  18. gilescope commented on Jul 30, 2021

    @gilescope

    Would microsoft accept a PR along these lines? (I'm assuming this is kinda run like an open source project)

  19. joaomoreno commented on Apr 27, 2022

    @joaomoreno
    Contributor

    Closing as duplicate of #147756

  20. locked and limited conversation to collaborators on Jun 11, 2022
  21. unlocked this conversation on Apr 1, 2025
  22. consideRatio commented on Oct 28, 2025

    @consideRatio

    What remains to close this issue are the system-wide default settings, the mandatory parts are resolved for windows/mac/linux recently with Policy settings (aka. system-wide mandatory settings if I understand this correctly).

    The issue title/description could benefit from an update to reflect this to help us focus the effort.

  23. dwhite5914 commented on Apr 24, 2026

    @dwhite5914

    This feature is still of great interest to me. While the new policy.json file allows system-wide mandatory settings, the default settings feature is still missing and would be incredibly helpful in a managed environment. Preferably it would just add another layer to the existing settings.json scheme where each layer overrides the next (i.e. system > user > workspace > folder). The system settings.json file could be placed in /etc/vscode/settings.json for instance. This would be very similar to how git works with the same override scheme (system > user > repo) with a system defaults file in /etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    configVS Code configuration, settingsfeature-requestRequest for new features or functionality

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions