Some links on this page are affiliate links: if you buy through them we may earn a commission, at no extra cost to you.
For a device-wide Visual Studio Code deployment through Microsoft Configuration Manager (formerly SCCM), start with the VS Code System Installer, test its silent install and uninstall behavior, then package it as an EXE deployment type. Use version-aware detection if Configuration Manager is expected to enforce a release baseline; a rule that only looks for Code.exe confirms presence, not version compliance.
This guide covers the Windows System Installer. Visual Studio Code is a code editor, not the separate Visual Studio IDE. The exact installer filename and package behavior can change, so use the installer you have actually tested—not the historical VS Code 1.74.3 example in the older HTMD Blog procedure.
Choose the right VS Code package
Microsoft offers Windows User Installer, System Installer, and ZIP distributions. For an application assigned to devices and intended to be available to all users, the System Installer is usually the most natural fit: it installs for all users and requires administrator permissions. A User Installer is per-user, normally installs under %LOCALAPPDATA%ProgramsMicrosoft VS Code, and is better suited to individual-user installation than a conventional device-wide deployment. The ZIP archive is a portable-style option with a separately managed update and cleanup lifecycle.
Do these 3 things before closing this tab:
1Repair Windows errors before they cause bigger problems2Fix the driver behind crashes, sound loss and screen glitches3Clear out junk files and repair common Windows errorsCheck the target fleet before downloading. Do not assume every device is x64: confirm whether ARM64 devices are in scope and select a matching package. See Microsoft’s Windows setup documentation and VS Code FAQ for current package choices.
#1 Best Overall
- 14" diagonal, 1366x768 resolution, HD BrightView LED, Glossy NON-TOUCH Display
| Package | Scope and fit | Operational consideration |
|---|---|---|
| User Installer | One Windows user | Per-user installation and update behavior; can coexist with a system installation. |
| System Installer | All users on a device | Requires elevation; generally fits device-targeted Configuration Manager deployment. |
| ZIP | Extracted application | Updates, detection, and removal need administrator-designed lifecycle handling. |
Prepare and test the content
- Download the intended System Installer from the official VS Code download page. Record its version, architecture, and exact filename.
- Put it in a versioned source folder, for example
\CMSourceApplicationsMicrosoftVSCode1.XX.XSystem-x64. Versioned content makes auditing and rollback clearer than replacing files in a genericLatestfolder. - Ensure the Configuration Manager site server can read the source and that the intended distribution points can receive the content.
- Test the package on a representative device, including a test under the same SYSTEM context used by the deployment. An interactive administrator install alone does not prove the package works in client enforcement context.
For the System Installer, use this command as a template, replacing the filename with the exact downloaded file:
VSCodeSetup-x64-{version}.exe /VERYSILENT /NORESTART /MERGETASKS=!runcode
The VS Code Windows documentation describes Inno Setup switches and documents /MERGETASKS=!runcode to prevent VS Code from launching when setup completes. Confirm the command against the selected package before production: verify silent completion, return code, install scope, upgrade behavior, reboot behavior, and whether an existing VS Code process affects the result. Do not reuse the old VSCodeSetup-x64-1.74.3.exe filename as a current package.
Confirm the uninstall command on the installed package
Do not assume a permanent uninstaller path. The historical HTMD example uses %ProgramFiles%Microsoft VS Codeunins000.exe /VERYSILENT /NORESTART, but that is package-specific, not a universal guarantee. Install the exact package in a test environment, inspect its registered uninstall entry and installed files, then test the quiet uninstall under the intended Configuration Manager context. Confirm whether settings and extensions remain; application removal is not necessarily profile-data removal. Microsoft documents uninstall differences by installation type in its uninstall guidance.
Recommended Free Tools
Rank #2
- 1.1 GHz (boost up to 2.4GHz) Intel Celeron N5030 Quad-Core
- 4GB DDR4 System Memory; 128GB Solid State Drive
- 11.6" HD (1366 x 768) Multi-Touch Display
- Combo headphone/microphone jack - Noble Wedge Lock slot - HDMI; 2 USB 3.1 Gen 1
- Windows 11 Pro
Create the Configuration Manager application
In the Configuration Manager console, open Software Library > Application Management > Applications (labels can vary by console version and localization). Create an application by manually specifying application information, then add an EXE deployment type.
- Give the application a clear name, such as Visual Studio Code – System Installer – 1.XX.X. Add publisher and version metadata and, if useful to users, a Software Center icon.
- For content location, point to the versioned source folder containing the installer.
- Set the installation program to the tested silent command. Set the uninstall program to the command verified from that package.
- Configure detection before saving the deployment type. Choose a method that matches whether you need simple presence detection or release-level compliance.
- Set the deployment type’s user experience to Install for system for the System Installer, and choose the logon and visibility behavior that matches your organization’s user-notification policy. Validate the combination on a pilot client.
Configuration Manager supports deployment-type installation behavior settings; administrators who manage applications through PowerShell can refer to Microsoft’s deployment-type documentation.
Choose detection that matches your compliance goal
Basic file detection
A straightforward rule checks for Code.exe in %ProgramFiles%Microsoft VS Code. This resembles the historical HTMD rule and is simple to configure. It is suitable only when the goal is to detect a system installation at that expected path. By itself, it does not confirm the required version, architecture, or integrity, and a leftover executable could produce a false positive.
Rank #3
- 256 GB SSD of storage.
- Multitasking is easy with 16GB of RAM
- Equipped with a blazing fast Core i5 2.00 GHz processor.
Version-aware detection
If the application represents a managed release or minimum version, use a version-aware method: for example, a registry uninstall entry with a verified display version, or a PowerShell detection script that checks the executable and its version. First install the exact package and inspect its actual registration and version strings; do not guess a registry key or assume every build formats version metadata identically.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
Illustrative PowerShell logic for a system installation is below. Test the product-version string from your package: version metadata can contain suffixes that cannot be cast directly to [version].
$path = Join-Path $env:ProgramFiles 'Microsoft VS CodeCode.exe'
$minimum = [version]'1.XX.X'
if (Test-Path -LiteralPath $path) {
$rawVersion = (Get-Item -LiteralPath $path).VersionInfo.ProductVersion
$match = [regex]::Match($rawVersion, '^d+(?:.d+){1,3}')
if ($match.Success -and ([version]$match.Value) -ge $minimum) {
Write-Output 'Installed'
exit 0
}
}
exit 1
In a Configuration Manager script detection rule, ensure the script’s output and exit behavior match the console’s detection requirements and test both compliant and noncompliant cases. Consider a signature check if your organization requires it. If both x64 and ARM64 devices are in scope, account for each supported package and installation path rather than treating one architecture’s file as universal.
Rank #4
- EFFORTLESS EVERYDAY PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 Home system, delivering reliable, low-power efficiency for daily tasks like document editing, email, online classes, and web browsing
- 15.6-INCH FULL HD DISPLAY: Enjoy immersive visuals on the 15.6" FHD (1920x1080) anti-glare screen with micro-edge bezels. Delivers clear details and comfortable viewing for long study sessions, working on spreadsheets, and video playback
- RESPONSIVE MULTITASKING & STORAGE: Built with 4GB LPDDR4 RAM and 128GB eMMC storage for smooth daily essential use. Expand your storage by up to 1TB via the integrated TF card slot to easily store movies, photos, and working files
- ADVANCED CONNECTIVITY: Outfitted with 2x Full-Featured Type-C ports for data transfer, fast charging, and dual-monitor output, alongside 2x USB 3.2 Gen1 ports and a 3.5mm audio jack for complete peripheral compatibility
- LIGHTWEIGHT & SILENT OPERATION: Slim and portable for effortless travel or commuting. Features a 1MP HD webcam for remote meetings, 38Wh battery with 45W Type-C fast charging, and a fanless silent design for peaceful work environments.
Plan for existing installations and updates
Before rolling out the System Installer, decide what to do about per-user VS Code already installed on target devices. A system installation does not automatically make every existing per-user copy disappear. Users may see duplicate shortcuts, launch different versions, or have inconsistent extension and file-association behavior. Inventory or otherwise identify existing User Installer installations, then decide whether to leave, remove, or migrate them. Test the chosen approach before broad deployment.
VS Code releases frequently and supports automatic updates, with behavior depending on installation type and organizational controls. A Configuration Manager install does not, by itself, guarantee that devices remain on one version. Choose an update policy: allow users to update, manage a minimum version through detection and supersedence, or publish tested releases through a controlled packaging cadence. Verify any policy or update control against the selected build and current Microsoft documentation rather than assuming a setting applies universally.
Free tools Windows power users keep installed
One-click scans. No signup required.
Distribute content and deploy to a pilot
- Right-click the application and select Distribute Content.
- Select the required distribution point or distribution-point group and complete the wizard.
- Confirm content distribution succeeded before expecting clients to install. A correct installer and detection rule cannot compensate for content missing from the client’s assigned distribution point.
- Deploy to a small device pilot first. Select Install and choose Available for optional Software Center installation, or Required when installation is mandatory.
- For developer workstations, an Available pilot is often a lower-risk first step. If moving to Required, consider running editor sessions, notifications, maintenance timing, and whether an upgrade can interfere with active work.
- After validating pilot results, expand in stages using the organization’s normal collection and change process.
Validate on the client
Check the deployment status and compliance state in the console, then verify locally that Code.exe is in the expected system-installation directory and that its version meets the intended baseline. Test launching VS Code as a standard user and, where relevant, with a second user account. Confirm that the code command is available if your workflows require it; PATH behavior should be tested for the selected installation type. The editor installation does not install Git, Python, Node.js, Java, compilers, SDKs, extensions, or user settings.
Best Value
- WINDOWS 11 | STABLE PERFORMANCE: Powered by Intel Celeron N4020 processor and Windows 11 system, this laptop delivers stable performance for everyday computing tasks. It supports web browsing, online learning, document editing, email communication, and basic office work with optimized power efficiency, providing a practical and reliable experience for essential daily use for daily use.
- 15.6” FHD IPS DISPLAY: Features a 15.6-inch Full HD IPS display with narrow bezels, offering wider viewing angles and clearer image details compared to standard panels. The improved screen-to-body ratio enhances visual experience for study, reading, document work, and video playback, making it suitable for both productivity and entertainment use.
- 4GB DDR4 + 128GB eMMC STORAGE: Equipped with 4GB DDR4 memory and 128GB eMMC storage for everyday basics such as browsing, documents, email, and online learning platforms. The built-in TF card slot supports storage expansion up to 1TB, giving you more flexibility for files, photos, videos, and daily documents. TF card not included.
- CONNECTIVITY & PORTS: Includes 1× TF card slot, 2× USB 3.2 Gen1 ports, and 2× full-featured Type-C ports (USB 3.2 Gen1). The Type-C ports support data transfer, charging, and video output, enabling flexible connection with external devices such as monitors, storage, and peripherals for daily work and study use.
- LIGHTWEIGHT DESIGN | ONLINE COMMUNICATION: Designed with a slim, portable profile, this laptop is easy to carry for school, commuting, and travel. A built-in 1MP front camera supports online classes, video meetings, remote communication, and everyday conferencing. The 3300mAh battery works with the low-power system design to support practical daily use, while thermal optimization helps maintain quieter operation during extended tasks.
Use the client logs to isolate the stage that failed:
C:WindowsCCMLogsAppDiscovery.log: application detection and discovery.C:WindowsCCMLogsAppEnforce.log: installation or uninstall enforcement, command execution, and return behavior.C:WindowsCCMLogsPolicyAgent.log: policy retrieval issues.C:WindowsCCMLogsContentTransferManager.logandDataTransferService.log: content-transfer problems.
Troubleshoot common failures
| Symptom | What to check |
|---|---|
| Installation reports success but an older release remains compliant | Replace presence-only detection with version-aware detection; inspect the installed file and detection result in AppDiscovery.log. |
| Installer cannot be found or content does not download | Check the source path and permissions, successful distribution, boundary-group assignment, distribution-point health, and content-transfer logs. |
| VS Code launches during enforcement | Confirm the no-launch switch is present and supported by the tested installer; inspect AppEnforce.log for actual command and result. |
| Install works interactively but fails from Configuration Manager | Reproduce under SYSTEM context. Check assumptions about user profile, relative paths, environment variables, proxy access, and user-specific destinations. |
| Two shortcuts or unexpected versions appear | Look for pre-existing per-user installations and apply the organization’s coexistence or cleanup decision. |
| Upgrade fails while a developer is working | Test with VS Code running. If the package cannot safely update in that state, use a maintenance window or an appropriate user-notification/process-close plan. |
| Detection fails on some devices | Check architecture and actual install path; ensure the selected installer and detection logic cover only the supported device types. |
| Version changes without a Configuration Manager deployment | Review the update policy for the installation type. Decide whether automatic updates are acceptable or whether Configuration Manager must enforce a baseline. |
Extensions are a separate deployment
VS Code’s command-line interface can install an extension by identifier, for example code --install-extension publisher.extension. The editor package does not install extensions automatically. Extension deployment should be designed separately, including which user profile receives extensions, whether the CLI is available in the execution context, and how extension versions and network access are governed. See the VS Code command-line documentation.
When another deployment method may fit better
Use an Intune Win32 application when devices are cloud-managed and Intune is the organization’s chosen endpoint platform; it still requires packaging, commands, detection, and testing. Co-management can support a transition, but application workload ownership should be clear. A ZIP deployment suits specialized or portable scenarios where administrators accept responsibility for updates, inventory, cleanup, and detection. A custom PowerShell wrapper can handle architecture selection, existing-install cleanup, process checks, logging, or extension provisioning, but adds code that must be maintained and tested. For organizations already operating Configuration Manager infrastructure, its Application Model remains a conventional route for this system-installer deployment.
Pre-production checklist
- Correct package type, version, filename, and architecture confirmed.
- System Installer scope matches the device deployment goal.
- Silent install, return behavior, upgrade, and uninstall tested under SYSTEM.
- Existing per-user installations assessed and disposition decided.
- Detection method matches the required version-compliance policy.
- Content is distributed and reachable from the target clients.
- Pilot succeeds for standard users, with logs reviewed.
- Update governance, extension scope, and rollback approach are documented.
For related package details, consult the official Windows setup, portable mode, and uninstall documentation.
Quick Recap
Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

