Write-Host "=== Virtualization Environment Reinstaller ===" -ForegroundColor Cyan
Write-Host ""
function Pause-Continue {
Write-Host ""
Read-Host "Press ENTER to continue"
}
# -----------------------------
# HYPER-V REINSTALL
# -----------------------------
function Reinstall-HyperV {
Write-Host "`n--- Reinstalling Hyper-V Components ---" -ForegroundColor Yellow
$features = @(
"Microsoft-Hyper-V",
"Microsoft-Hyper-V-Management-Clients",
"Microsoft-Hyper-V-Management-PowerShell",
"Microsoft-Hyper-V-Hypervisor",
"Microsoft-Hyper-V-Services",
"Microsoft-Hyper-V-Tools-All"
)
Write-Host "Disabling Hyper-V..."
foreach ($f in $features) {
dism.exe /Online /Disable-Feature /FeatureName:$f /NoRestart | Out-Null
}
Write-Host "Re-enabling Hyper-V..."
foreach ($f in $features) {
dism.exe /Online /Enable-Feature /FeatureName:$f /All /NoRestart | Out-Null
}
Write-Host "Hyper-V reinstall complete. A reboot is recommended." -ForegroundColor Green
}
# -----------------------------
# VIRTUALBOX REINSTALL
# -----------------------------
function Reinstall-VirtualBox {
Write-Host "`n--- Reinstalling VirtualBox ---" -ForegroundColor Yellow
Write-Host "Uninstalling VirtualBox..."
winget uninstall Oracle.VirtualBox --silent --force
Write-Host "Reinstalling VirtualBox..."
winget install Oracle.VirtualBox --silent --force
Write-Host "VirtualBox reinstall complete." -ForegroundColor Green
}
# -----------------------------
# VMWARE REINSTALL
# -----------------------------
function Reinstall-VMware {
Write-Host "`n--- Reinstalling VMware Workstation/Player ---" -ForegroundColor Yellow
Write-Host "Uninstalling VMware..."
winget uninstall VMware.WorkstationPlayer --silent --force
winget uninstall VMware.WorkstationPro --silent --force
Write-Host "Reinstalling VMware Player..."
winget install VMware.WorkstationPlayer --silent --force
Write-Host "VMware reinstall complete." -ForegroundColor Green
}
# -----------------------------
# DOCKER DESKTOP REINSTALL
# -----------------------------
function Reinstall-Docker {
Write-Host "`n--- Reinstalling Docker Desktop ---" -ForegroundColor Yellow
Write-Host "Uninstalling Docker Desktop..."
winget uninstall Docker.DockerDesktop --silent --force
Write-Host "Reinstalling Docker Desktop..."
winget install Docker.DockerDesktop --silent --force
Write-Host "Docker reinstall complete." -ForegroundColor Green
}
# -----------------------------
# MAIN MENU
# -----------------------------
function MainMenu {
Clear-Host
Write-Host "=== Virtualization Reinstaller Menu ===" -ForegroundColor Cyan
Write-Host "1. Reinstall Hyper-V"
Write-Host "2. Reinstall VirtualBox"
Write-Host "3. Reinstall VMware"
Write-Host "4. Reinstall Docker Desktop"
Write-Host "5. Reinstall ALL"
Write-Host "0. Exit"
Write-Host ""
$choice = Read-Host "Select an option"
switch ($choice) {
"1" { Reinstall-HyperV; Pause-Continue; MainMenu }
"2" { Reinstall-VirtualBox; Pause-Continue; MainMenu }
"3" { Reinstall-VMware; Pause-Continue; MainMenu }
"4" { Reinstall-Docker; Pause-Continue; MainMenu }
"5" {
Reinstall-HyperV
Reinstall-VirtualBox
Reinstall-VMware
Reinstall-Docker
Pause-Continue
MainMenu
}
"0" { Write-Host "Exiting..." -ForegroundColor Cyan }
default {
Write-Host "Invalid selection." -ForegroundColor Red
Pause-Continue
MainMenu
}
}
}
MainMenu