Hai installato il ruolo Hyper‑V su Windows Server 2019 e ora l’opzione per rimuoverlo in Server Manager è disattivata? In questa guida pratica trovi cause, verifiche e procedure PowerShell sicure per disinstallare completamente Hyper‑V, pulire i residui e risolvere i casi più ostinati.
Scenario e sintomi
Dopo l’installazione del ruolo Hyper‑V, in Server Manager > Add Roles and Features la casella di Hyper‑V può apparire grigia e non modificabile anche se avvii Server Manager con privilegi amministrativi. Questo comportamento è quasi sempre legato a dipendenze attive, a componenti collegati (strumenti, Replica, Shielded VM, Containers) o a particolarità dell’ambiente (cluster, host con VBS/Credential Guard, gestione remota).
Cause comuni dell’opzione disattivata
- Feature o ruoli dipendenti: strumenti di gestione Hyper‑V, PowerShell per Hyper‑V, componenti per Shielded VM, funzionalità di Replica o il ruolo Host Guardian Service in laboratorio.
- Host in cluster: nodi che partecipano a un Failover Cluster con carichi Hyper‑V non consentono la rimozione “al volo”.
- Servizi o VM in esecuzione: macchine virtuali o servizi Hyper‑V ancora attivi bloccano la disinstallazione.
- Funzionalità di sicurezza basate su virtualizzazione (VBS, Credential Guard, HVCI): possono avviare il Windows Hypervisor anche senza il ruolo Hyper‑V, generando confusione post‑rimozione.
- Gestione remota o edizione Server Core: l’interfaccia grafica presenta limitazioni e alcune modifiche devono passare da PowerShell.
Prerequisiti e controlli veloci
Prima di rimuovere Hyper‑V, verifica questi punti essenziali per ridurre rischi e tempi di fermo.
Controllo | Comando / Azione | Esito atteso |
---|---|---|
Backup e finestra di manutenzione | Pianifica un riavvio e aggiorna l’inventario | Confermata finestra per riavvio |
VM spente | Get-VM deve mostrare tutte “Off” | Nessuna VM in esecuzione |
Cluster | Rimuovi ruoli di cluster e/o il nodo | Nodo in stato Paused o fuori cluster |
Dipendenze | Get-WindowsFeature Hyper | Nessuna feature “Installed” necessaria a Hyper‑V |
Rete | Annota virtual switch e binding | Piano di ripristino connettività |
Verificare dipendenze e componenti collegati
Hyper‑V può essere richiesto da altri elementi. Prima di rimuoverlo, elimina le dipendenze che seguono, se presenti:
- Strumenti di gestione Hyper‑V (GUI e PowerShell per Hyper‑V).
- Componenti Shielded VM e laboratori con Host Guardian Service.
- Replica Hyper‑V configurata tra host.
- Containers con isolamento Hyper‑V o software che usa il Windows Hypervisor.
Comandi utili per l’inventario
# Elenco ruoli/feature legati a Hyper‑V
Get-WindowsFeature Hyper | Format-Table Name, DisplayName, InstallState -Auto
Elenco VM e stato operativo
Get-VM | Select-Object Name, State, Path
Verifica virtual switch
Get-VMSwitch | Format-Table Name, SwitchType, NetAdapterInterfaceDescription -Auto
Rimozione affidabile con PowerShell
La rimozione lato server è più robusta e ripetibile tramite PowerShell con privilegi amministrativi. Ecco il percorso consigliato.
Arresto ordinato delle VM
# Spegne tutte le VM eventualmente attive
Get-VM | Where-Object {$_.State -ne 'Off'} | Stop-VM -Force
Facoltativo: arresta il servizio di gestione VMMS
Stop-Service -Name vmms -Force -ErrorAction SilentlyContinue
Disinstallazione del ruolo Hyper‑V
Esegui il comando seguente. Disinstalla Hyper‑V e gli strumenti di gestione correlati; al termine verrà richiesto il riavvio.
Remove-WindowsFeature -Name Hyper-V -IncludeManagementTools
In alternativa, sui sistemi in cui è disponibile la nomenclatura più recente, puoi usare il comando equivalente:
Uninstall-WindowsFeature -Name Hyper-V -IncludeManagementTools
Per automatizzare il riavvio se richiesto, aggiungi -Restart
:
Uninstall-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Verifica post‑riavvio
# Controlla lo stato del ruolo
Get-WindowsFeature Hyper-V | Format-Table Name, InstallState
Controlla se l'hypervisor parte comunque (VBS/Credential Guard)
systeminfo | Select-String "Hyper-V Requirements"
Verifica impostazione di avvio dell'hypervisor
bcdedit /enum {current} | findstr /i hypervisorlaunchtype
Perché altri comandi possono fallire
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-Hypervisor
agisce sulle funzionalità opzionali di Windows client; su Windows Server non rimuove il ruolo.Remove-WindowsFeature
/Uninstall-WindowsFeature
è l’utilità corretta per aggiungere/rimuovere ruoli e feature lato server perché interagisce con il Server Manager e le relative dipendenze.
Alternative quando l’interfaccia è bloccata
Se desideri comunque procedere senza PowerShell (ad es. in ambienti rigidi), verifica che non ci siano dipendenze e poi usa Server Manager > Manage > Remove Roles and Features. Se l’opzione resta non disponibile, significa che una dipendenza o un vincolo ambientale la sta impedendo: rimuovili o passa a PowerShell.
Uso di DISM quando necessario
In scenari particolari (immagini offline, Server Core minimal, script legacy) puoi ricorrere a DISM. Prima individua i nomi esatti delle feature presenti sul tuo sistema:
# Individua i nomi delle feature Hyper‑V con DISM
dism /online /Get-Features /Format:Table | findstr /i hyper
Quindi disabilita la/le feature trovate (sostituisci <FeatureName>
con il nome reale):
dism /online /Disable-Feature /FeatureName:<FeatureName> /NoRestart
shutdown /r /t 0
Nota: l’approccio con DISM è utile come ultima risorsa; quando possibile preferisci sempre Remove/Uninstall‑WindowsFeature
.
Pulizia post‑rimozione
Rimuovere virtual switch non più necessari
# Elenco switch
Get-VMSwitch
Rimozione di uno switch specifico
Remove-VMSwitch -Name "vSwitch-Prod" -Force
Se uno switch era legato all’unica scheda di gestione, valuta di riconfigurare l’IP prima della rimozione o di eseguire l’attività tramite console locale per evitare perdita di connettività.
Ripulire binding e adattatori virtuali
# Verifica binding dello switch estendibile di Hyper‑V
Get-NetAdapterBinding -ComponentID vms_pp | Format-Table Name, Enabled
Facoltativo: disabilita binding residui su una NIC
Disable-NetAdapterBinding -Name "Ethernet" -ComponentID vms_pp
Gestire file di VM e dischi virtuali
# Individua dischi e configurazioni VM rimaste (senza cancellare)
Get-ChildItem -Path "D:\HyperV" -Recurse -Include .vhd,.vhdx,.avhdx,.vmcx,*.vmrs
Se sicuro, rimuovi le cartelle di lavoro
ATTENZIONE: azione distruttiva, verifica due volte il percorso
Remove-Item -Path "D:\HyperV*" -Recurse -Force
Verificare l’assenza dell’hypervisor all’avvio
Se dopo la rimozione systeminfo
continua a indicare “A hypervisor has been detected…”, probabilmente il sistema sta ancora avviando il componente di virtualizzazione per funzioni VBS (Credential Guard/HVCI).
# Disabilita l'avvio dell'hypervisor (richiede riavvio)
bcdedit /set hypervisorlaunchtype off
Attenzione: disabilitare l’hypervisor potrebbe disattivare funzionalità di sicurezza basate su virtualizzazione (VBS, Credential Guard). Esegui questa scelta consapevolmente.
Casi speciali e come gestirli
Host membri di un cluster di Failover
- Metti in Pause il nodo e drena i ruoli (Live Migration dei carichi altrove).
- Rimuovi eventuali Cluster Roles di VM o il nodo dal cluster.
- Esegui la rimozione di Hyper‑V via PowerShell.
- Riavvia e poi reintegra il nodo nel cluster se necessario.
Server Core senza GUI
Usa esclusivamente PowerShell:
Get-WindowsFeature Hyper-V
Uninstall-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Ambienti con Containers
Se hai usato Docker/Containers con isolamento Hyper‑V, il sistema può continuare ad avviare il Windows Hypervisor anche senza il ruolo Hyper‑V per supportare quell’isolamento. Rimuovi/riconfigura i componenti dei container o passa all’isolamento process prima di disinstallare Hyper‑V, se l’obiettivo è spegnere totalmente l’hypervisor.
Shielded VM e Host Guardian Service
Host configurati per eseguire Shielded VM richiedono componenti aggiuntivi. Rimuovi i laboratori HGS e i relativi agent/feature prima di tentare la disinstallazione.
VBS, Credential Guard e HVCI
Queste tecnologie sfruttano l’hypervisor. Anche senza il ruolo Hyper‑V, l’hypervisor può partire. Se l’obiettivo è solo eliminare il ruolo, lascia VBS attivo; se invece vuoi disattivare completamente la virtualizzazione, agisci sul bcdedit
come mostrato sopra e rivedi i criteri di sicurezza.
Script di automazione pronto all’uso
Lo script seguente automatizza i controlli chiave, spegne le VM, rimuove Hyper‑V, effettua verifiche e propone il riavvio. Personalizzalo secondo le tue policy.
#requires -RunAsAdministrator
Write-Host "=== Rimozione guidata del ruolo Hyper‑V (Windows Server 2019) ===" -ForegroundColor Cyan
1) Inventario rapido
$hv = Get-WindowsFeature Hyper-V
if ($hv.InstallState -ne 'Installed') {
Write-Host "Hyper‑V non risulta installato. Uscita." -ForegroundColor Yellow
return
}
Write-Host "`nDipendenze installate:" -ForegroundColor Cyan
Get-WindowsFeature Hyper | Where-Object InstallState -eq 'Installed' |
Format-Table Name, DisplayName, InstallState -Auto
2) Stop VM
$running = Get-VM | Where-Object {$_.State -ne 'Off'}
if ($running) {
Write-Host "`nArresto VM in corso..." -ForegroundColor Cyan
$running | Stop-VM -Force -ErrorAction Continue
Start-Sleep -Seconds 5
}
3) Facoltativo: stop VMMS
Try { Stop-Service vmms -Force -ErrorAction Stop } Catch { }
4) Rimozione ruolo + strumenti
Write-Host "`nDisinstallazione del ruolo Hyper‑V..." -ForegroundColor Cyan
$op = Uninstall-WindowsFeature -Name Hyper-V -IncludeManagementTools -Verbose -ErrorAction Continue
5) Esito e riavvio
if ($op.Success -eq $true -and $op.RestartNeeded -ne 'No') {
Write-Host "`nE' richiesto un riavvio per completare la rimozione." -ForegroundColor Green
$ans = Read-Host "Riavviare ora? (Y/N)"
if ($ans -match '^[Yy]') { Restart-Computer -Force }
} else {
Write-Host "`nOperazione completata. Verifica stato:" -ForegroundColor Green
Get-WindowsFeature Hyper-V | Format-Table Name, InstallState
}
Diagnostica in caso di errore
- File in uso: errori su file
.vhdx
/.vmcx
indicano VM o processi che li tengono aperti. Chiudi console di gestione, antivirus/backup e riprova. - Eventi: consulta Event Viewer > Applications and Services Logs > Microsoft > Windows > Hyper‑V‑VMMS per dettagli.
- Timeout dei servizi: arresta manualmente
vmms
come indicato sopra e rilancia il comando. - Blocchi da policy: criteri di sicurezza o baseline possono reinstallare componenti. Disattiva temporaneamente le policy o escludi Hyper‑V dal configuration management durante la rimozione.
- Cluster: verifica che il nodo sia in Pause e senza ruoli assegnati.
Ottimizzazioni e best practice
- Documenta posizioni di storage, switch, VLAN e mapping delle NIC prima della rimozione.
- Usa parametri espliciti come
-IncludeManagementTools
per disinstallare strumenti/console insieme al ruolo. - Automatizza su più server con PowerShell Remoting (
Invoke-Command
) e controlli idempotenti (Get-WindowsFeature
). - Valuta la sicurezza: se intendi disattivare l’hypervisor, verifica impatti su VBS/ Credential Guard e compliance.
Quando reinstallare Hyper‑V
Se prevedi di reinstallare Hyper‑V in futuro, verifica in anticipo che la virtualizzazione hardware sia attiva nel BIOS/UEFI (Intel VT‑x/AMD‑V) e che il server supporti SLAT. Un rapido controllo:
systeminfo | Select-String "Hyper-V Requirements"
Riepilogo operativo
La rimozione del ruolo Hyper‑V in Windows Server 2019 è affidabile e ripetibile via PowerShell usando Remove‑WindowsFeature
/Uninstall‑WindowsFeature
. Prima elimina le dipendenze, spegni le VM, quindi disinstalla e riavvia. Dopo il riavvio, ripulisci switch e file residui; se necessario, disabilita l’avvio dell’hypervisor.
Procedura rapida
- Verifica dipendenze e spegni le VM.
- Esegui come amministratore:
Remove-WindowsFeature -Name Hyper-V -IncludeManagementTools
- Accetta il riavvio per completare la rimozione.
- Pulisci switch e file non più necessari.
In sintesi: la rimozione di Hyper‑V in Windows Server 2019 avviene in modo affidabile tramite PowerShell con Remove‑WindowsFeature
, dopo aver risolto eventuali dipendenze e seguito un riavvio del sistema.