Sunday, April 20, 2025

Uninstall WSL—-Windows Subsystem for Linux

Script 1: Uninstall Debian WSL (Standalone)
Uninstall-DebianWSL.ps1

# ================================
# 💣 Uninstall WSL Debian + Clean Residual Files
# ================================

Write-Host ”🔍 Checking installed WSL distributions…” -ForegroundColor Cyan
wsl –list –verbose

# Target distro name
$targetDistro = ”Debian”

# Confirm uninstall
$confirm = Read-Host ”`nAre you sure you want to uninstall $targetDistro? This will permanently delete all data! (Type ’yes’ to confirm)”
if ($confirm -ne ”yes”) {
    Write-Host ”❌ Operation cancelled.” -ForegroundColor Yellow
    exit
}

# Unregister distro
Write-Host ”`n💥 Unregistering $targetDistro…” -ForegroundColor Red
wsl –unregister $targetDistro

Start-Sleep -Seconds 1

# Remove residual Appx packages
Write-Host ”`n🧹 Removing Microsoft Store app remnants…” -ForegroundColor DarkGray
Get-AppxPackage *debian* | Remove-AppxPackage -ErrorAction SilentlyContinue

# Clean up file system paths
$paths = @(
    ”$env:LOCALAPPDATAPackagesTheDebianProject*”,
    ”$env:USERPROFILE.wslconfig”,
    ”$env:USERPROFILE.wsl”,
    ”$env:APPDATAwsl”
)

foreach ($path in $paths) {
    if (Test-Path $path) {
        Remove-Item $path -Recurse -Force -ErrorAction SilentlyContinue
        Write-Host ”🗑️ Deleted: $path” -ForegroundColor Green
    }
}

Write-Host ”`n✅ Debian has been fully uninstalled and cleaned.” -ForegroundColor Green

Script 2: Auto-Uninstall Debian + Ubuntu (Smart Detection)
Uninstall-WSL-Distros.ps1

# ================================
# 💣 Auto-detect & Uninstall Debian + Ubuntu from WSL
# ================================

# Get installed WSL distros
$distros = wsl –list –quiet

# Define targets
$targets = @(”Debian”, ”Ubuntu”)

# Filter matches
$matchedDistros = $distros | Where-Object { $targets -contains $_ }

if ($matchedDistros.Count -eq 0) {
    Write-Host ”⚠️ No Debian or Ubuntu distributions found. Nothing to uninstall.” -ForegroundColor Yellow
    exit
}

Write-Host ”`nThe following WSL distributions will be removed:” -ForegroundColor Cyan
$matchedDistros | ForEach-Object { Write-Host ” - $_” }

# Confirm uninstall
$confirm = Read-Host ”`n⚠️ Are you sure you want to uninstall these distributions? This will permanently delete all data! (Type ’yes’ to confirm)”
if ($confirm -ne ”yes”) {
    Write-Host ”❌ Operation cancelled.” -ForegroundColor DarkYellow
    exit
}

# Uninstall each
foreach ($distro in $matchedDistros) {
    Write-Host ”`n💥 Unregistering: $distro” -ForegroundColor Red
    wsl –unregister $distro
    Start-Sleep -Seconds 1
}

# Remove Appx packages
Write-Host ”`n🧹 Cleaning up Microsoft Store packages…” -ForegroundColor DarkGray
Get-AppxPackage *debian* | Remove-AppxPackage -ErrorAction SilentlyContinue
Get-AppxPackage *ubuntu* | Remove-AppxPackage -ErrorAction SilentlyContinue

# Remove leftover directories
$paths = @(
    ”$env:LOCALAPPDATAPackagesTheDebianProject*”,
    ”$env:LOCALAPPDATAPackagesCanonicalGroupLimited*”,
    ”$env:USERPROFILE.wslconfig”,
    ”$env:USERPROFILE.wsl”,
    ”$env:APPDATAwsl”
)

foreach ($path in $paths) {
    if (Test-Path $path) {
        Remove-Item $path -Recurse -Force -ErrorAction SilentlyContinue
        Write-Host ”🗑️ Deleted: $path” -ForegroundColor Green
    }
}

Write-Host ”`n✅ Selected WSL distributions have been fully uninstalled and cleaned.” -ForegroundColor Green

How to Use (Both Scripts)
1.Save as .ps1 files (e.g. Uninstall-WSL-Distros.ps1)

2.Open PowerShell as Administrator

3.Run this to allow script execution (if not already enabled):

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

4.Run the script:

.Uninstall-WSL-Distros.ps1

OVER!

RSS | ATOM


Add comment

Fill out the form below to add your own comments


BBCode Help