microsoft / microsoft/WSL

No visible or functional uninstall path for WSL when listed under System Components

Open
#40,656 6 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

install
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

### Description

After installing WSL, Windows does not provide a clear or functional way to fully uninstall the WSL app/core component.

Right-clicking WSL from the Start Menu and selecting **Uninstall** redirects to:

```text
Settings > Apps > Installed Apps
````

However, WSL is not listed there.

Instead, WSL appears under:

```text
Settings > Apps > System Components
```

In that location, there is no available uninstall option.

The current WSL installer/updater can install, overwrite, or update files under:

```text
C:\Program Files\WSL
```

but it does not provide a corresponding uninstall or purge option.

### Important clarification

This issue is not about unregistering a Linux distribution.

Commands such as:

```powershell
wsl --unregister
```

only remove a Linux distribution and its data. They do not remove the WSL app/core component itself.

The problem is that the WSL component/package remains installed or visible in Windows even when the user wants to remove WSL completely.

### Steps to reproduce

1. Install WSL.
2. Open the Start Menu.
3. Search for WSL.
4. Right-click WSL and select **Uninstall**.
5. Windows opens **Settings > Apps > Installed Apps**.
6. Notice that WSL is not listed there.
7. Go to **Settings > Apps > System Components**.
8. Notice that WSL is listed there, but no uninstall option is available.
9. Try removing the package using PowerShell.
10. Notice that WSL still appears in the Start Menu and the directory remains present:

```text
C:\Program Files\WSL
```

### Actual behavior

WSL appears as a System Component without a visible uninstall option.

The Start Menu uninstall shortcut redirects to Installed Apps, but WSL is not listed there.

PowerShell removal attempts do not fully remove WSL. After attempting removal, WSL still appears in the Start Menu, and the following directory remains present:

```text
C:\Program Files\WSL
```

The installer/updater can update or overwrite files in that directory, but it does not provide an option to remove them.

### Expected behavior

Windows should provide an official and documented way to completely uninstall the WSL app/core component.

This could be exposed through one or more of the following:

* Windows Settings
* PowerShell
* `wsl.exe`
* the WSL installer/updater
* an official documented cleanup procedure

The uninstall path should remove or properly unregister:

* the WSL app/core package
* the Start Menu entry
* the System Components entry
* the files under `C:\Program Files\WSL`
* any associated WSL package registration that keeps the component visible or active

### Why this matters

Users should be able to return the system to a clean state when WSL is no longer needed, was installed only for temporary testing, or is not functioning correctly.

Currently, Windows provides installation and update paths for WSL, but there does not appear to be an equivalent supported uninstall path for the WSL app/core component.

This leaves WSL in a partially installed or non-removable state from the user's perspective.

### Commands tested

The following commands were attempted, but they did not fully remove WSL from the system:

```powershell
Get-AppxPackage -AllUsers *WindowsSubsystemForLinux*

Get-AppxPackage -AllUsers *WindowsSubsystemForLinux* | Remove-AppxPackage -AllUsers
```

After running these commands, WSL still appears in the Start Menu and `C:\Program Files\WSL` remains present.

### Diagnostic information

```powershell
cmd.exe /c ver
wsl.exe --version
wsl.exe --status
wsl.exe --list --verbose
Get-AppxPackage -AllUsers *WindowsSubsystemForLinux* | Select-Object Name, PackageFullName, InstallLocation, Status
Get-AppxProvisionedPackage -Online | Where-Object DisplayName -like "*WindowsSubsystemForLinux*" | Select-Object DisplayName, PackageName
Get-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Get-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
```

### Additional context

This behavior makes WSL look like a system component that can be installed or updated, but not cleanly removed.

If WSL is intended to be removable, there should be a documented and functional uninstall path.

If WSL is no longer intended to be fully removable through normal user-facing tools, that should also be documented clearly.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reproducing the uninstall flow through Start Menu, Installed Apps, and System Components, then review the listed PowerShell commands and WSL entry points such as wsl.exe. Determine which package registration and files remain after removal. Done means there is an official, functional uninstall path that removes the WSL component, Start Menu and System Components entries, and C:\Program Files\WSL, or documents why that is unsupported.

Written by the indexing model from the issue text.

Assessment

Tech stack
powershell
Domain
operating-systems
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.