Désinstallation impossible de WSL sous Windows 11 : guide complet, erreurs courantes et solutions fiables

Vous n’arrivez pas à retirer WSL de Windows 11 ? Ce guide pragmatique explique pourquoi la désinstallation reste bloquée et comment l’enlever proprement, icône « Linux » comprise, avec des commandes fiables et des vérifications claires.

Sommaire

Vue d’ensemble de la question

Plusieurs symptômes reviennent lorsqu’on tente de supprimer le Windows Subsystem for Linux (WSL) :

  • La case Windows Subsystem for Linux reste cochée ou grisée dans Fonctionnalités Windows.
  • L’icône Linux apparaît toujours dans l’Explorateur de fichiers / le menu Démarrer malgré la désinstallation.
  • WSL n’est plus visible dans Applications et fonctionnalités ni dans les Composants système, ce qui empêche toute suppression classique.

La cause est souvent un mélange entre l’ancienne « fonctionnalité Windows » WSL, la version Microsoft Store (package MicrosoftCorporationII.WSL), des distributions encore inscrites et la plateforme de virtualisation Virtual Machine Platform (VMP) nécessaire à WSL 2.

Résumé opérationnel (tableau des solutions)

ÉtapeCommandes / actionsDétails & conseils
1. Arrêter et désinscrire les distributionswsl --shutdown
wsl -l -v puis wsl --unregister <Distro>
À répéter pour chaque distribution listée.
2. Désinstaller WSL par la ligne de commandeWindows 11 22H2 + : wsl --uninstall
OU PowerShell admin :
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart
Plus fiable que l’interface graphique.
3. Désactiver les fonctionnalités associéesFonctionnalités Windows :
Windows Subsystem for Linux
Virtual Machine Platform
Redémarrer après la désactivation.
4. Forcer avec DISM (si blocage)dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart
Nécessite un redémarrage.
5. Réparer l’image système (recommandé)DISM /Online /Cleanup-Image /CheckHealth/ScanHealth/RestoreHealth
puis sfc /scannow
Utile si les étapes 2‑4 échouent.
6. Nettoyer les résidusSupprimer :
C:\Users\<Vous>\AppData\Local\Packages\Canonical…
C:\Program Files\WindowsApps\MicrosoftCorporationII.WSL…
%LOCALAPPDATA%\lxss
Prendre possession si besoin (voir précautions).
7. Tenter en mode Sans échecRedémarrer en Mode sans échec et répéter les étapes 2‑4.Contourne certains verrous de fichiers.
8. Désinstalleur tiers (option)Revo Uninstaller portable → onglet Windows Apps → « Windows Subsystem for Linux » → désinstaller + nettoyage du registre.Utile quand l’entrée WSL n’est plus visible ailleurs.

Avant de commencer

  • Ouvrez PowerShell ou Invite de commandes en tant qu’administrateur.
  • Créez un point de restauration (Restauration du système) ; un retour arrière est toujours prudent.
  • Fermez vos IDE/VM/émulateurs (Docker Desktop, Android Emulator, VirtualBox, etc.) qui peuvent maintenir des verrous VMP/HNS.
  • Prévoyez au moins un redémarrage après chaque désactivation importante.

Diagnostics rapides (à exécuter d’abord)

Ces commandes indiquent l’état de WSL, des distributions et des fonctionnalités associées.

REM État global WSL
wsl --status

REM Distributions installées et version (1/2)
wsl -l -v

REM Fonctionnalités Windows liées à WSL
dism /online /get-features /format:table | findstr /I "Linux VirtualMachinePlatform"

REM Présence du package Store WSL (PowerShell)
Get-AppxPackage -AllUsers *MicrosoftCorporationII.WSL* | Select Name, PackageFullName 
Si vous voyez…Interprétez ainsiAction
NAME STATE VERSION suivi de distributionsDes distributions sont encore inscrites.Étape 1 : wsl --shutdown puis wsl --unregister pour chaque distro.
VirtualMachinePlatform | EnabledLa VMP est active (WSL2, Docker, etc.).Étape 3/4 : désactiver si vous n’en avez plus besoin.
Un ou plusieurs MicrosoftCorporationII.WSL...WSL (version Store) est encore provisionné/présent.Étape 6 : retirer le package Store proprement.

Procédure pas‑à‑pas détaillée

Arrêter WSL et désinscrire toutes les distributions

Fermez toutes les consoles WSL, puis exécutez :

wsl --shutdown
wsl -l -v
wsl --unregister Ubuntu
wsl --unregister Debian
REM …répétez pour chaque distribution listée

Astuce PowerShell (plus robuste) :

$distros = (wsl -l -v) | Select-String '^\s*(\S+)\s' | ForEach-Object { $_.Matches[0].Groups[1].Value } | Where-Object { $_ -ne 'NAME' }
foreach($d in $distros){ wsl --unregister $d }

Désinstaller WSL (binaire) via la ligne de commande

Sur Windows 11 22H2 et ultérieur, la commande dédiée simplifie tout :

wsl --uninstall

Si cela échoue ou si la commande n’existe pas, forcez la désactivation de la fonctionnalité « WSL » au niveau du système :

Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux -NoRestart

Désactiver Virtual Machine Platform (si vous n’en avez plus besoin)

WSL 2 s’appuie sur Virtual Machine Platform. Si vous n’utilisez ni WSL ni Docker/WSA, désactivez‑la pour libérer le sous‑système Hyper‑V léger :

dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart

Puis désactivez la fonctionnalité WSL si elle apparaît encore activée :

dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart

Redémarrez. Reprenez l’opération jusqu’à voir State : Disabled pour ces deux fonctionnalités.

Réparer l’image Windows en cas d’échec ou de boucle « en attente de redémarrage »

Lorsque CBS/servicing est corrompu, la désactivation peut rester bloquée. Enchaînez :

DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /ScanHealth
DISM /Online /Cleanup-Image /RestoreHealth
sfc /scannow

Si RestoreHealth mentionne des actions en attente, redémarrez et relancez. En dernier recours, exécutez en Mode sans échec (voir plus bas).

Supprimer le package Store WSL (proprement)

Depuis Windows 11, WSL est également fourni via le Microsoft Store. Supprimez le package pour tous les utilisateurs, puis retirez le provisionnement :

# Désinstallation pour chaque utilisateur
Get-AppxPackage -AllUsers *MicrosoftCorporationII.WSL* | Remove-AppxPackage -AllUsers

# Retrait du provisionnement (sinon il se réinstalle pour les nouveaux profils)

Get-AppxProvisionedPackage -Online `| Where-Object { $_.DisplayName -like "*WindowsSubsystemForLinux*" -or $_.PackageName -like "*MicrosoftCorporationII.WSL*" }`
| Remove-AppxProvisionedPackage -Online 

Alternative avec winget (si disponible) :

winget list microsoft.wsl
winget uninstall --id Microsoft.WSL --source msstore

Nettoyer les résidus de fichiers et l’icône « Linux »

Après la désinstallation, effacez les dossiers résiduels suivants s’ils existent encore (fermez l’Explorateur avant) :

CheminContenuRemarques
%LOCALAPPDATA%\lxssAnciens rootfs et configurations WSL 1Supprimer le dossier entier.
C:\Users\<Vous>\AppData\Local\Packages\Canonical...Conteneurs UWP des distros (Ubuntu, Debian, etc.)Supprimer chaque dossier CanonicalGroupLimited….
C:\Program Files\WindowsApps\MicrosoftCorporationII.WSL...Reste du package Store WSLNormalement supprimé via Appx/winget ; sinon redémarrez puis effacez.

Précaution importante : évitez de modifier les ACL du dossier WindowsApps dans son ensemble. Supprimez uniquement les sous‑dossiers WSL résiduels après désinstallation Appx. Si l’accès est refusé, tentez d’abord un redémarrage, puis supprimez depuis une invite Administrator.

Si l’icône « Linux » persiste dans l’Explorateur, reconstruisez le cache d’icônes et relancez l’Explorateur :

taskkill /f /im explorer.exe
del /a /q "%LocalAppData%\IconCache.db"
del /a /q "%LocalAppData%\Microsoft\Windows\Explorer\iconcache*"
start explorer.exe

Retirer l’adaptateur réseau vEthernet (WSL)

Ouvrez le Gestionnaire de périphériques → menu Affichage → cochez Afficher les périphériques cachésCartes réseau → désinstallez vEthernet (WSL) (cochez « Supprimer le pilote » si proposé). Redémarrez. Cela évite le re‑création de l’adaptateur à chaud.

Désinstaller également WSLg Update (si présent)

Dans Paramètres > Applications > Applications installées, recherchez « Windows Subsystem for Linux Update ». Désinstallez‑le si vous l’aviez installé séparément. Cela retire les composants WSLg (affichage graphique) restants.

Mode sans échec (utile en cas de verrous)

Pour contourner les fichiers verrouillés, redémarrez en Mode sans échec. Méthode rapide :

  1. Win + Rmsconfig.
  2. Onglet Démarrer → cochez Démarrage sécurisé (Minimal) → OKRedémarrer.
  3. Répétez les étapes 2 à 4 (DISM/Disable‑WindowsOptionalFeature).
  4. Revenez dans msconfig pour décocher Démarrage sécurisé et redémarrez normalement.

Procédure condensée recommandée

# 1. Arrêt et désinscription
wsl --shutdown
wsl -l -v | ForEach-Object { wsl --unregister $_.Split()[0] }

# 2. Suppression des fonctionnalités

dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart

# 3. Redémarrage automatique

shutdown /r /t 5 </code></pre>

<p><em>Variante plus robuste (ignore l’en‑tête de la liste)</em> :</p>
<pre><code class="language-powershell">wsl --shutdown
$distros = (wsl -l -v) | Select-String '^\s*(\S+)\s' | ForEach-Object { $_.Matches[0].Groups[1].Value } | Where-Object { $_ -ne 'NAME' }
$distros | ForEach-Object { wsl --unregister $_ }
dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
shutdown /r /t 5
</code></pre>

<h2>Erreurs fréquentes et correctifs</h2>
<table>
  <thead>
    <tr>
      <th>Message / Code</th>
      <th>Cause probable</th>
      <th>Correctif</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td><code>0x800F0922</code> (DISM/SFC)</td>
      <td>Corruption CBS ou opération en attente.</td>
      <td>Lancez la séquence <code>DISM /RestoreHealth</code> puis <code>sfc /scannow</code>, redémarrez, recommencez la désactivation.</td>
    </tr>
    <tr>
      <td><code>The operation is pending and requires a reboot</code></td>
      <td>Transaction servicing incomplète.</td>
      <td>Redémarrez immédiatement. Si la boucle persiste, essayez le <strong>Mode sans échec</strong> et répétez <code>dism /disable-feature</code>.</td>
    </tr>
    <tr>
      <td><code>Feature name Microsoft-Windows-Subsystem-Linux is unknown</code></td>
      <td>Nom de fonctionnalité erroné ou version Windows trop ancienne.</td>
      <td>Vérifiez avec <code>dism /online /get-features</code>. Sur Windows 11, le nom ci‑dessus est correct (respect de la casse non requis).</td>
    </tr>
    <tr>
      <td>Icône « Linux » toujours visible dans l’Explorateur</td>
      <td>Cache d’icônes ou extension de shell non rafraîchi.</td>
      <td>Reconstruisez le cache (voir commande ci‑dessus) et redémarrez l’Explorateur.</td>
    </tr>
    <tr>
      <td>Erreur <code>Access is denied</code> lors de la suppression des dossiers</td>
      <td>Droits NTFS insuffisants / processus encore actif.</td>
      <td>Fermez <code>explorer.exe</code>, supprimez depuis une console admin. Évitez de réécrire les ACL de <code>WindowsApps</code> globalement.</td>
    </tr>
    <tr>
      <td>Docker/Android Emulator ne fonctionnent plus après</td>
      <td>VMP a été désactivée.</td>
      <td>Réactivez <strong>Virtual Machine Platform</strong> si vous avez besoin d’Hyper‑V léger.</td>
    </tr>
  </tbody>
</table>

<h2>Vérifier que la désinstallation est complète</h2>
<ol>
  <li><strong>Fonctionnalités</strong>&nbsp;:
    <pre><code>dism /online /get-features /format:table | findstr /I "Linux VirtualMachinePlatform"</code></pre>
    Attendu : <em>Disabled</em> partout.
  </li>
  <li><strong>Package Store</strong>&nbsp;:
    <pre><code class="language-powershell">Get-AppxPackage -AllUsers *MicrosoftCorporationII.WSL*</code></pre>
    Attendu : <em>aucune sortie</em>.
  </li>
  <li><strong>WSL</strong> :
    <pre><code>wsl -l -v</code></pre>
    Attendu : message indiquant qu’aucune distribution n’est installée. La commande <code>wsl</code> peut ne plus être disponible si <code>wsl --uninstall</code> a été exécuté.
  </li>
  <li><strong>Explorateur</strong> : l’icône « Linux » et les lecteurs <code>\\wsl$</code> n’apparaissent plus.</li>
  <li><strong>Réseau</strong> : aucune carte <em>vEthernet (WSL)</em> dans le Gestionnaire de périphériques.</li>
</ol>

<h2>Réinstaller proprement WSL (facultatif)</h2>
<p>Si votre but est de repartir sur une base saine, voici la voie la plus simple :</p>
<ol>
  <li>Réactivez <strong>Virtual Machine Platform</strong> si vous ciblez WSL&nbsp;2 :
    <pre><code>dism /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart</code></pre>
  </li>
  <li>Installez WSL et choisissez la version par défaut :
    <pre><code>wsl --install
wsl --set-default-version 2

Installez la distribution souhaitée (Ubuntu, Debian, etc.) depuis le Microsoft Store.

Bonnes pratiques et points d’attention utiles

  • Droits administrateur : exécutez toutes les commandes dans une console élevée.
  • Redémarrage : après chaque (dés)activation de fonctionnalité, redémarrez immédiatement.
  • vEthernet (WSL) : pensez à supprimer l’adaptateur réseau résiduel pour repartir sur un stack propre.
  • WSLg : si vous aviez installé la mise à jour WSLg, supprimez aussi « Windows Subsystem for Linux Update ».
  • Nettoyage mesuré : privilégiez Remove-AppxPackage / Remove-AppxProvisionedPackage au lieu du take ownership sur WindowsApps.
  • Environnements pros : des stratégies (GPO) ou solutions de sécurité peuvent réactiver VMP/WSL. Vérifiez vos politiques si la case se recoche « toute seule ».

Script complet « tout‑en‑un » (optionnel)

Ce script PowerShell tente l’arrêt de WSL, la désinscription de toutes les distributions, la désactivation des fonctionnalités et la suppression du package Store, puis propose un redémarrage.

# Exécuter en tant qu’administrateur
Write-Host "Arrêt de WSL..." -ForegroundColor Cyan
wsl --shutdown 2>$null

Write-Host "Désinscription des distributions..." -ForegroundColor Cyan
$distros = (wsl -l -v) 2>$null | Select-String '^\s*(\S+)\s' | ForEach-Object { $*.Matches[0].Groups[1].Value } | Where-Object { $* -ne 'NAME' }
foreach($d in $distros){ try{ wsl --unregister $d }catch{} }

Write-Host "Désactivation des fonctionnalités..." -ForegroundColor Cyan
dism /online /disable-feature /featurename:VirtualMachinePlatform /norestart
dism /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart

Write-Host "Suppression du package Store WSL (tous utilisateurs)..." -ForegroundColor Cyan
Get-AppxPackage -AllUsers *MicrosoftCorporationII.WSL* | Remove-AppxPackage -AllUsers 2>$null
Get-AppxProvisionedPackage -Online `| Where-Object { $_.DisplayName -like "*WindowsSubsystemForLinux*" -or $_.PackageName -like "*MicrosoftCorporationII.WSL*" }`
| Remove-AppxProvisionedPackage -Online 2>$null

Write-Host "Nettoyage des dossiers résiduels..." -ForegroundColor Cyan
$paths = @(
"$env:LOCALAPPDATA\lxss",
"$env:LOCALAPPDATA\Packages"
)
foreach($p in $paths){
if(Test-Path $p){ Get-ChildItem $p -Recurse -Force -ErrorAction SilentlyContinue | Where-Object { $*.FullName -like "*Canonical*" -or $*.FullName -like "*Ubuntu*" } | Remove-Item -Recurse -Force -ErrorAction SilentlyContinue }
}

Write-Host "Un redémarrage est recommandé pour finaliser la suppression." -ForegroundColor Yellow 

FAQ

Pourquoi la case « Windows Subsystem for Linux » reste‑t‑elle cochée ?
Parce que la fonctionnalité Windows, la plateforme VMP et/ou le package Store coexistent. Si l’une d’elles reste active, Windows peut réafficher la case comme « activée ». Désinstallez toutes les couches (fonctionnalité + VMP + Appx) puis redémarrez.

Est‑il nécessaire de désactiver Hyper‑V ?
Non. WSL 2 s’appuie sur des composants communs, mais la désactivation explicite d’Hyper‑V n’est pas requise pour retirer WSL. Ne le désactivez que si vous comprenez l’impact sur d’autres outils.

Comment vérifier que \\wsl$ a bien disparu ?
Exécutez dir \\wsl$ dans une invite de commandes. Vous devriez obtenir une erreur de chemin réseau introuvable. Dans l’Explorateur, l’icône « Linux » n’apparaît plus.

Je veux garder Docker, mais pas WSL
Docker Desktop utilise VMP et le moteur WSL 2 par défaut. Vous pouvez conserver VMP et désinstaller WSL ; Docker proposera éventuellement Hyper‑V ou signalera l’absence de WSL. Décidez selon vos usages.

Que faire si DISM renvoie des erreurs répétées ?
Exécutez la séquence DISM/SFC, passez en Mode sans échec et répétez les désactivations. En ultime recours, une réparation sur place (installation de Windows par‑dessus sans perte de données) remettra d’équerre le moteur de servicing.

Peut‑on supprimer manuellement WindowsApps\MicrosoftCorporationII.WSL ?
Uniquement si le package a été préalablement retiré via Appx/winget et que le dossier persiste après redémarrage. Évitez de modifier les ACL globales de WindowsApps.

Conclusion

WSL s’intègre à la fois comme « fonctionnalité Windows » et comme application Store. Lorsqu’une désinstallation échoue, combinez : désinscription des distributions, suppression WSL via la ligne de commande, désactivation de VMP, retrait du package Store et nettoyage des résidus. Avec un redémarrage systématique et, au besoin, une réparation DISM/SFC ou un passage en Mode sans échec, vous éliminerez les verrous les plus tenaces et ferez disparaître l’icône « Linux » et les lecteurs virtuels.

Sommaire