Lors de la mise en place d'environnements de simulation et de virtualisation avancée (tels que VMware Workstation, Oracle VirtualBox, EVE-NG, GNS3, ou Proxmox VE) sous Windows 10 / 11, de nombreux utilisateurs se heurtent à des blocages matériels et des conflits d'hyperviseur.
Par défaut, Windows active plusieurs mécanismes de sécurité basés sur la virtualisation (VBS - Virtualization-Based Security), l'intégrité de la mémoire (HVCI), Credential Guard, ainsi que la couche Hyper-V. Ces fonctionnalités verrouillent les extensions de virtualisation matérielle du processeur (Intel VT-x ou AMD-V / SVM), empêchant les hyperviseurs tiers de type 2 d'accéder directement au CPU et bloquant la virtualisation imbriquée (nested virtualization).
Ce dépôt propose une documentation technique claire et structurée ainsi que des scripts PowerShell prêts à l'emploi pour :
- Débrider l'accès CPU en désactivant proprement VBS, HVCI et Hyper-V.
- Activer la virtualisation imbriquée pour faire tourner des routeurs, commutateurs et VM 64 bits dans vos labs.
- Restaurer l'état de sécurité initial en un clic grâce à un script de rollback.
- Étudiants en réseaux & télécoms : réalisation de maquettes de topologie sous EVE-NG, GNS3, Cisco CML, etc.
- Administrateurs Systèmes & Réseaux : déploiement de clusters de test Proxmox, VMware ESXi virtuels, labs Active Directory / Linux.
- Ingénieurs DevOps & Cybersécurité : création d'environnements de test isolés avec accélération CPU hardware.
- Tout utilisateur sous Windows (équipé d'un processeur Intel ou AMD) souhaitant faire de la virtualisation sans conflit logiciel.
Lorsque VBS ou Hyper-V est actif, des messages d'incompatibilité et des blocages surviennent au lancement de vos machines virtuelles :
- VMware Workstation refuse d'exécuter la VM : "Device Guard / Credential Guard is not compatible".
- EVE-NG / GNS3 : les nœuds QEMU / KVM (routeurs Cisco IOL/Dynamips, appliances Fortinet, MikroTik, Linux) ne démarrent pas ou s'exécutent en émulation logicielle très lente.
- VirtualBox : affichage de l'icône de la tortue verte dans la barre d'état (mode dégradé via l'API Hyper-V) et impossibilité d'allouer plusieurs vCPU correctement.
- L'option "Virtualize Intel VT-x/EPT or AMD-V/RVI" reste grisée ou provoque un échec au démarrage de la machine hôte virtuelle.
- ⚡ Guide technique d'activation totale de la virtualisation imbriquée sous Windows
- Présentation du Projet
- Public Cible & Cas d'Usage
- Problèmes Rencontrés & Symptômes Visuels
- Table des Matières
- Prérequis
- Méthode 1 : Automatisation via scripts PowerShell
- Méthode 2 : Procédure manuelle
- Code source des scripts pour copier-coller rapide
- FAQ & Dépannage
- Sécurité & Bonnes Pratiques
- Licence & Auteur
Avant de lancer les scripts ou la procédure manuelle :
- Virtualisation matérielle activée dans le BIOS / UEFI :
- Intel : Activez
Intel Virtualization Technology(Intel VT-x) etIntel VT-d. - AMD : Activez
SVM Mode(Secure Virtual Machine) ouAMD-V.
- Intel : Activez
- Système d'exploitation : Windows 10 ou Windows 11 (64 bits - Éditions Famille, Pro ou Entreprise).
- Privilèges : Exécution requise avec les droits Administrateur.
Deux scripts PowerShell prêts à l'emploi sont disponibles dans le dossier Scripts/ :
| Script | Fichier Source | Description |
|---|---|---|
| Activation | Scripts/activation.ps1 |
Désactive VBS, Credential Guard, HVCI et Hyper-V pour débrider les extensions CPU. |
| Rollback | Scripts/rollback.ps1 |
Rétablit les configurations par défaut et réactive la sécurité Windows d'origine. |
- Ouvrez une console PowerShell en tant qu'Administrateur (Clic droit sur le menu Démarrer > Terminal Windows (Administrateur) ou PowerShell (Admin)).
- Si la stratégie d'exécution bloque les scripts locaux, débloquez la session avec :
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
- Exécutez le script d'activation :
.\Scripts\activation.ps1
- Confirmez le redémarrage proposé ou redémarrez votre PC manuellement pour appliquer les modifications au niveau matériel.
Pour réactiver les composants de sécurité Windows ou réutiliser WSL2 / Windows Sandbox :
- Ouvrez une console PowerShell en tant qu'Administrateur.
- Exécutez le script de restauration :
.\Scripts\rollback.ps1
- Redémarrez l'ordinateur pour réactiver l'intégrité de la mémoire et les modules Hyper-V.
Si vous préférez exécuter les manipulations manuellement pour comprendre chaque étape :
-
Appuyez sur
Windows + R, tapezregeditet validez parEntrée. -
Rendez-vous au chemin suivant :
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard -
Nettoyage optionnel : si une entrée orpheline nommée
Nouvelle Valeur #1existe, supprimez-la. -
Désactivation de VBS :
- Mettez la valeur DWORD 32 bits de
EnableVirtualizationBasedSecuritysur0. - Si
EnableVirtualizationBasedSecurityn'est pas présent, créez-le en cliquant surNouveau > Valeur DWORD 32 bits. Renommez-le exactement comme indiqué dans la parenthese (EnableVirtualizationBasedSecurity) et mettez la valeur à0
- Mettez la valeur DWORD 32 bits de
-
Désactivation de Credential Guard :
- Rendez-vous dans
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa. - Réglez la valeur DWORD
LsaCfgFlagssur0.
- Rendez-vous dans
-
Désactivation de l'isolation du noyau (HVCI) :
- Rendez-vous dans
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity. - Réglez la valeur DWORD
Enabledsur0.
- Rendez-vous dans
L'hyperviseur natif Microsoft Hyper-V ne doit pas se charger au démarrage pour libérer le contrôle exclusif du processeur :
- Appuyez sur
Windows + R, tapezoptionalfeatures.exeet validez parEntrée. - Décochez impérativement les cases suivantes :
- Hyper-V
- Plateforme de l'hyperviseur Windows
- Plateforme de machine virtuelle
- Bac à sable Windows (si activé)
- Cliquez sur OK et laissez Windows désactiver les composants.
Tip
Alternative en ligne de commande PowerShell (en mode admin) :
Dism /online /Disable-Feature /FeatureName:Microsoft-Hyper-V /NoRestart
Dism /online /Disable-Feature /FeatureName:HyperVPlatform /NoRestart
Dism /online /Disable-Feature /FeatureName:VirtualMachinePlatform /NoRestart- Ouvrez les Paramètres Windows (
Windows + I) > Confidentialité et sécurité > Sécurité Windows. - Cliquez sur Sécurité des appareils, puis sur Détails de l'isolement du noyau.
- Positionnez l'interrupteur Intégrité de la mémoire sur Désactivé.
- Redémarrez complètement votre ordinateur.
- Après l'ouverture de session, appuyez sur
Windows + R, tapezmsinfo32et validez. - Sur la page Résumé système, faites défiler vers le bas du panneau de droite.
- Assurez-vous que la ligne Sécurité basée sur la virtualisation affiche :
Non activéouDésactivée.
Une fois le système d'exploitation débridé, configurez vos hyperviseurs virtuels :
- Faites un clic droit sur la machine virtuelle > Settings (Paramètres).
- Dans l'onglet Hardware, cliquez sur Processors.
- Cochez impérativement l'option :
- ☑️ Virtualize Intel VT-x/EPT or AMD-V/RVI
- ☑️ (Optionnel) Virtualize CPU performance counters
- Validez par OK et démarrez la VM.
- Sélectionnez votre VM > Configuration > Système > onglet Processeur.
- Cochez l'option : ☑️ Activer la virtualisation imbriquée VT-x/AMD-V.
- Dans l'onglet Accélération, conservez l'interface de paravirtualisation sur Par défaut ou KVM.
1. Script d'Activation : activation.ps1
<#
.SYNOPSIS
Automatisation du débridage CPU pour les labs nécessitant de la virtualisation imbriquée.
.DESCRIPTION
Ce script désactive proprement la sécurité basée sur la virtualisation (VBS),
Credential Guard, l'isolation du noyau (HVCI), ainsi que l'hyperviseur natif
Hyper-V pour libérer les extensions Intel VT-x / AMD-V au profit de VMware Workstation.
.NOTES
Exécution obligatoire en tant qu'Administrateur. Un redémarrage est requis après exécution.
#>
# 1. ÉLÉVATION DES PRIVILÈGES
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
[Security.Principal.WindowsBuiltInRole]::Administrator
)
if (-not $isAdmin) {
Write-Error "Ce script doit impérativement être exécuté dans une console PowerShell en tant qu'ADMINISTRATEUR."
Exit
}
Write-Host "=== Début de la configuration du système pour le Lab VMware (Proxmox / EVE-NG) ===" -ForegroundColor Cyan
# 2. CONFIGURATION DU REGISTRE WINDOWS (DÉSACTIVATION DE VBS & VARIANTES)
$RegistryPathDeviceGuard = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard"
$RegistryPathLsa = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"
$RegistryPathHvci = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity"
Write-Host "`n[1/3] Modification des clés de Registre..." -ForegroundColor Yellow
# Nettoyage d'un éventuel registre orphelin (s'il existe)
if (Get-ItemProperty -Path $RegistryPathDeviceGuard -Name "Nouvelle Valeur #1" -ErrorAction SilentlyContinue) {
Remove-ItemProperty -Path $RegistryPathDeviceGuard -Name "Nouvelle Valeur #1" -Force
Write-Host " -> Clé résiduelle 'Nouvelle Valeur #1' détectée et supprimée." -ForegroundColor Gray
}
# Gestion et désactivation des deux variantes de clés VBS connues
if (-not (Test-Path $RegistryPathDeviceGuard)) {
New-Item -Path $RegistryPathDeviceGuard -Force | Out-Null
}
New-ItemProperty -Path $RegistryPathDeviceGuard -Name "EnableVirtualizationBasedSecurity" -Value 0 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $RegistryPathDeviceGuard -Name "EnabledVirtualizationSecurityBased" -Value 0 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Les commutateurs globaux VBS (variantes incluses) ont été positionnés à 0." -ForegroundColor Green
# Désactivation des indicateurs de politique Credential Guard (LsaCfgFlags à 0)
New-ItemProperty -Path $RegistryPathLsa -Name "LsaCfgFlags" -Value 0 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Configuration Credential Guard (LsaCfgFlags) positionnée à 0." -ForegroundColor Green
# Désactivation de l'intégrité de la mémoire (HVCI / Isolation du noyau)
if (-not (Test-Path $RegistryPathHvci)) {
New-Item -Path $RegistryPathHvci -Force | Out-Null
}
New-ItemProperty -Path $RegistryPathHvci -Name "Enabled" -Value 0 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Isolation du noyau / Intégrité de la mémoire configurée sur Désactivé (0)." -ForegroundColor Green
# 3. DÉSACTIVATION DES COMPOSANTS HYPER-V
Write-Host "`n[2/3] Désactivation des fonctionnalités et hyperviseurs Windows conflictuels..." -ForegroundColor Yellow
$FeaturesToDisable = @("Microsoft-Hyper-V", "HyperVPlatform", "VirtualMachinePlatform")
foreach ($Feature in $FeaturesToDisable) {
Write-Host " -> Vérification et suppression du composant : $Feature..." -ForegroundColor Gray
Dism /online /Disable-Feature /FeatureName:$Feature /NoRestart | Out-Null
}
Write-Host " -> Fonctionnalités Windows d'hyperviseur désactivées." -ForegroundColor Green
# 4. FINALISATION ET DEMANDE DE REDÉMARRAGE
Write-Host "`n[3/3] Configuration terminée avec succès !" -ForegroundColor Cyan
Write-Host "----------------------------------------------------------------------"
Write-Host "IMPORTANT : Un redémarrage complet est requis pour libérer le processeur."
Write-Host "----------------------------------------------------------------------"
$Reboot = Read-Host "Voulez-vous redémarrer votre ordinateur immédiatement ? (O/N)"
if ($Reboot -eq "O" -or $Reboot -eq "o") {
Write-Host "Redémarrage du système en cours..." -ForegroundColor Magenta
Restart-Computer -Force
}
else {
Write-Host "Pensez à redémarrer manuellement avant de lancer VMware Workstation." -ForegroundColor Yellow
}2. Script de Restauration : rollback.ps1
<#
.SYNOPSIS
Script de Rollback : Restauration des paramètres de sécurité d'origine.
.DESCRIPTION
Ce script annule toutes les modifications précédentes en réactivant VBS,
Credential Guard, l'isolation du noyau (HVCI) et les fonctionnalités Hyper-V natives.
.NOTES
Exécution obligatoire en tant qu'Administrateur. Un redémarrage est requis après exécution.
#>
# 1. ÉLÉVATION DES PRIVILÈGES
$isAdmin = ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole(
[Security.Principal.WindowsBuiltInRole]::Administrator
)
if (-not $isAdmin) {
Write-Error "Ce script doit impérativement être exécuté dans une console PowerShell en tant qu'ADMINISTRATEUR."
Exit
}
Write-Host "=== Restauration des paramètres de sécurité et d'hyperviseur d'origine ===" -ForegroundColor Cyan
# 2. RESTAURATION DU REGISTRE WINDOWS (RÉACTIVATION DE VBS & CREDENTIAL GUARD)
$RegistryPathDeviceGuard = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard"
$RegistryPathLsa = "HKLM:\SYSTEM\CurrentControlSet\Control\Lsa"
$RegistryPathHvci = "HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity"
Write-Host "`n[1/3] Restauration des clés de Registre..." -ForegroundColor Yellow
# Réactivation des commutateurs globaux VBS à 1 (Activé par défaut sous Windows 11)
if (Test-Path $RegistryPathDeviceGuard) {
New-ItemProperty -Path $RegistryPathDeviceGuard -Name "EnableVirtualizationBasedSecurity" -Value 1 -PropertyType DWORD -Force | Out-Null
New-ItemProperty -Path $RegistryPathDeviceGuard -Name "EnabledVirtualizationSecurityBased" -Value 1 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Commutateurs globaux VBS réactivés (1)." -ForegroundColor Green
}
# Réactivation de la politique Credential Guard (LsaCfgFlags à 1)
if (Test-Path $RegistryPathLsa) {
New-ItemProperty -Path $RegistryPathLsa -Name "LsaCfgFlags" -Value 1 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Configuration Credential Guard (LsaCfgFlags) réactivée (1)." -ForegroundColor Green
}
# Réactivation de l'intégrité de la mémoire (HVCI / Isolation du noyau)
if (Test-Path $RegistryPathHvci) {
New-ItemProperty -Path $RegistryPathHvci -Name "Enabled" -Value 1 -PropertyType DWORD -Force | Out-Null
Write-Host " -> Isolation du noyau / Intégrité de la mémoire réactivée (1)." -ForegroundColor Green
}
# 3. RÉACTIVATION DES COMPOSANTS HYPER-V (PLATEFORME DE MICROSOFT)
Write-Host "`n[2/3] Réactivation des fonctionnalités d'hyperviseur Windows..." -ForegroundColor Yellow
# Liste des modules Windows à réinstaller pour restaurer l'état d'origine
$FeaturesToEnable = @(
"VirtualMachinePlatform",
"HyperVPlatform",
"Microsoft-Hyper-V"
)
foreach ($Feature in $FeaturesToEnable) {
Write-Host " -> Installation du composant : $Feature..." -ForegroundColor Gray
Dism /online /Enable-Feature /FeatureName:$Feature /NoRestart | Out-Null
}
Write-Host " -> Fonctionnalités Windows d'hyperviseur réinstallées." -ForegroundColor Green
# 4. FINALISATION ET DEMANDE DE REDÉMARRAGE
Write-Host "`n[3/3] Restauration terminée avec succès !" -ForegroundColor Cyan
Write-Host "----------------------------------------------------------------------"
Write-Host "IMPORTANT : Un redémarrage complet est requis pour appliquer la sécurité."
Write-Host "Note : Après le reboot, la virtualisation imbriquée dans VMware sera bridée."
Write-Host "----------------------------------------------------------------------"
$Reboot = Read-Host "Voulez-vous redémarrer votre ordinateur immédiatement ? (O/N)"
if ($Reboot -eq "O" -or $Reboot -eq "o") {
Write-Host "Redémarrage du système en cours..." -ForegroundColor Magenta
Restart-Computer -Force
}
else {
Write-Host "Pensez à redémarrer manuellement pour appliquer le retour à la normale." -ForegroundColor Yellow
}Note
Q : Le message d'erreur persiste malgré l'exécution du script et le redémarrage.
R : Assurez-vous que le lancement automatique de l'hyperviseur Windows au démarrage (BCD) est désactivé. Exécutez dans une invite de commande Administrateur :
bcdedit /set hypervisorlaunchtype offPuis effectuez un nouveau redémarrage.
Note
Q : Cette procédure fonctionne-t-elle sur les processeurs Intel et AMD ?
R : Oui, la méthode débloque les extensions matérielles Intel VT-x / EPT et AMD-V / SVM / RVI de manière identique.
Note
Q : Puis-je réactiver WSL2 (Windows Subsystem for Linux) plus tard ?
R : Oui. Pour réutiliser WSL2 ou Windows Sandbox, exécutez simplement .\Scripts\rollback.ps1 et redémarrez votre poste. Vous pouvez également exécuter vos distributions Linux directement dans VMware Workstation ou VirtualBox.
Important
Les mécanismes VBS, HVCI (Intégrité de la mémoire) et Credential Guard sont conçus pour protéger le système contre les attaques avancées ciblant la mémoire du noyau.
La désactivation de ces module est déconseillée en environnement de production et sur des postes comportant sensibles. Il est fortement recommandé d'utiliser le script rollback.ps1 pour réactiver les protections une fois vos sessions de lab terminées.
Ce projet est distribué sous la licence MIT. Consultez le fichier LICENSE pour plus d'informations.
- Auteur : Nelson Bandos
- Domaine : Réseaux, Sécurité & Virtualisation

