No visible or functional uninstall path for WSL when listed under System Components
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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