Introduction
Hyper-V est l'hyperviseur de type 1 intégré à Windows Server. Il permet de créer des machines virtuelles directement sur votre serveur sans avoir à installer VMware ou Proxmox.
Cas d'usage :
- Lab de test multi-OS (Linux, Windows, BSD)
- Isolation de plusieurs apps sur un seul Dédié
- VDI / postes Windows à distance
- CI/CD avec environnements isolés
⚠️ Sur un VPS, Hyper-V nécessite la virtualisation imbriquée activée par votre hôte. Sur les Dédiés VeryCloud (Ryzen avec AMD-V), c'est automatique. Sur les VPS, contactez le support.
Prérequis
- Windows Server 2019 / 2022 / 2025 (Standard ou Datacenter)
- CPU avec extensions de virtualisation (AMD-V / Intel VT-x)
- Au moins 8 Go de RAM (16-32 Go pour plusieurs VMs)
- Disque rapide (NVMe recommandé)
- Pour un VPS : virtualisation imbriquée activée par l'hôte
Étape 1 : Vérifier la compatibilité
Get-ComputerInfo -Property "HyperV*"
Vous devez voir :
HyperVRequirementDataExecutionPreventionAvailable : True
HyperVRequirementSecondLevelAddressTranslation : True
HyperVRequirementVirtualizationFirmwareEnabled : True
HyperVRequirementVMMonitorModeExtensions : True
Si tout est à False, votre hyperviseur hôte ne permet pas le nested virt.
Étape 2 : Installer le rôle Hyper-V
Install-WindowsFeature -Name Hyper-V -IncludeManagementTools -Restart
Le serveur redémarre. Au redémarrage, Hyper-V est actif.
Vérifier
Get-Service vmms
Get-WindowsFeature Hyper-V
Étape 3 : Ouvrir le Hyper-V Manager
virtmgmt.msc
Ou via Server Manager → Tools → Hyper-V Manager.
Étape 4 : Configurer un Virtual Switch
Pour que vos VMs aient accès au réseau, créez un switch virtuel.
Switch External (VMs ont accès Internet via votre IP publique)
# Lister les adaptateurs physiques
Get-NetAdapter
# Créer le switch
New-VMSwitch -Name "vSwitch-External" -NetAdapterName "Ethernet" -AllowManagementOS $true
AllowManagementOS $true garde l'accès réseau pour l'hôte.
Switch Internal (VMs entre elles + hôte, pas d'internet)
New-VMSwitch -Name "vSwitch-Internal" -SwitchType Internal
Switch Private (VMs entre elles uniquement)
New-VMSwitch -Name "vSwitch-Private" -SwitchType Private
Lister les switches
Get-VMSwitch
Étape 5 : Créer une VM (PowerShell)
$VMName = "vm-debian-01"
$VMPath = "D:\VMs"
$ISOPath = "D:\ISOs\debian-12-amd64-netinst.iso"
$VHDPath = "$VMPath\$VMName\$VMName.vhdx"
# Créer la VM Gen 2 (UEFI)
New-VM -Name $VMName `
-Generation 2 `
-MemoryStartupBytes 4GB `
-Path "$VMPath\$VMName" `
-NewVHDPath $VHDPath `
-NewVHDSizeBytes 40GB `
-SwitchName "vSwitch-External"
# Allouer 2 vCPUs
Set-VMProcessor -VMName $VMName -Count 2
# Activer Dynamic Memory
Set-VMMemory -VMName $VMName `
-DynamicMemoryEnabled $true `
-MinimumBytes 2GB `
-MaximumBytes 8GB
# Désactiver Secure Boot pour Linux (sinon erreur de boot)
Set-VMFirmware -VMName $VMName -EnableSecureBoot Off
# Attacher l'ISO d'installation
Add-VMDvdDrive -VMName $VMName -Path $ISOPath
# Démarrer la VM
Start-VM -Name $VMName
Étape 6 : Se connecter à la VM
vmconnect.exe localhost $VMName
Ou via Hyper-V Manager → clic droit sur la VM → Connect.
Vous voyez l'écran de boot et pouvez installer l'OS comme sur un PC normal.
Étape 7 : Gérer les VMs en PowerShell
# Lister
Get-VM
# Démarrer / Arrêter
Start-VM -Name "vm-debian-01"
Stop-VM -Name "vm-debian-01" -Force
# Pause / Reprise
Suspend-VM -Name "vm-debian-01"
Resume-VM -Name "vm-debian-01"
# Reboot
Restart-VM -Name "vm-debian-01" -Force
# État détaillé
Get-VM -Name "vm-debian-01" | Format-List *
# Supprimer (garde le VHD)
Remove-VM -Name "vm-debian-01" -Force
Étape 8 : Snapshots (Checkpoints)
Avant une mise à jour majeure, créez un snapshot :
# Créer
Checkpoint-VM -Name "vm-debian-01" -SnapshotName "Pre-update-$(Get-Date -Format yyyy-MM-dd)"
# Lister
Get-VMSnapshot -VMName "vm-debian-01"
# Restaurer
Restore-VMSnapshot -Name "Pre-update-2026-05-16" -VMName "vm-debian-01" -Confirm:$false
# Supprimer un snapshot
Remove-VMSnapshot -VMName "vm-debian-01" -Name "Pre-update-2026-05-16"
⚠️ Les snapshots ne sont pas des backups. Ils sont chaînés au disque parent. Pour un vrai backup, voir étape 12.
Étape 9 : Importer/Exporter des VMs
Exporter
Export-VM -Name "vm-debian-01" -Path "D:\Exports"
L'export contient tout : config, VHD, snapshots. Vous pouvez déplacer le dossier.
Importer
Import-VM -Path "D:\Exports\vm-debian-01\Virtual Machines\xxx.vmcx" -Copy -GenerateNewId
-GenerateNewId permet d'importer en parallèle de l'original.
Étape 10 : Templates de VMs
Pour déployer 10 VMs identiques, créez un template :
- Créez une VM "golden" (Debian + configs de base)
- Lancez
sysprep(Windows) oucloud-init clean(Linux) - Arrêtez la VM
- Copiez son VHDX :
Copy-Item "D:\VMs\template\template.vhdx" "D:\VMs\vm-new\vm-new.vhdx"
- Créez une nouvelle VM en pointant ce VHDX :
New-VM -Name "vm-new" -Generation 2 -MemoryStartupBytes 4GB -VHDPath "D:\VMs\vm-new\vm-new.vhdx" -SwitchName "vSwitch-External"
Étape 11 : Networking avancé
Bandwidth limit par VM
Set-VMNetworkAdapter -VMName "vm-debian-01" -MaximumBandwidth 100MB
VLAN tagging
Set-VMNetworkAdapterVlan -VMName "vm-debian-01" -Access -VlanId 100
Adresse MAC statique
Set-VMNetworkAdapter -VMName "vm-debian-01" -StaticMacAddress "00-15-5D-00-AA-01"
Étape 12 : Backup des VMs
Solution simple : Hyper-V Replica
Réplication asynchrone vers un autre serveur Hyper-V :
# Sur le serveur cible
Set-VMReplicationServer -ReplicationEnabled $true -AllowedAuthenticationType Kerberos -ReplicationAllowedFromAnyServer $true -DefaultStorageLocation "D:\Replicas"
# Sur le serveur source
Enable-VMReplication -VMName "vm-debian-01" -ReplicaServerName "DR-SERVER" -ReplicaServerPort 80 -AuthenticationType Kerberos
Start-VMInitialReplication -VMName "vm-debian-01"
Solution : Windows Server Backup
Install-WindowsFeature Windows-Server-Backup
# Backup config + VHD vers un disque externe
wbadmin start backup -backupTarget:E: -hyperv:"vm-debian-01" -quiet
Solution avancée : Veeam Backup Free Edition
Pour de la gestion centralisée multi-VMs, gratuit jusqu'à 10 VMs.
Étape 13 : Performance et tuning
Désactiver Time Synchronization pour les VMs avec NTP propre
Disable-VMIntegrationService -VMName "vm-debian-01" -Name "Time Synchronization"
Activer SR-IOV (réseau ultra-rapide, si supporté par la NIC)
Set-VMNetworkAdapter -VMName "vm-debian-01" -IovWeight 100
Storage QoS
Set-VMHardDiskDrive -VMName "vm-debian-01" -ControllerType SCSI -ControllerNumber 0 -ControllerLocation 0 -MaximumIOPS 1000
Dépannage
"Failed to start, virtualization not enabled"
Sur un VPS, demandez à l'hébergeur d'activer la virtualisation imbriquée. Sur un Dédié VeryCloud Ryzen, AMD-V est actif par défaut.
# Activer le nested virt (depuis l'hôte, pas la VM)
Set-VMProcessor -VMName "vm-name" -ExposeVirtualizationExtensions $true
VM ne démarre pas (Gen 2)
Pour les ISO Linux non-UEFI, créez une VM Gen 1 :
New-VM ... -Generation 1
Ou désactivez Secure Boot (déjà fait à l'étape 5).
"The requested resource is in use"
Une autre opération est en cours. Attendez puis :
Get-VM | Where-Object State -eq 'Stopping'
Erreur réseau dans la VM
Vérifiez que le vSwitch existe et est lié à un adaptateur up :
Get-VMSwitch | Format-List Name, NetAdapterInterfaceDescription
Get-NetAdapter
Commandes utiles
# Vue d'ensemble
Get-VM | Format-Table Name, State, CPUUsage, MemoryAssigned, Uptime
# VMs avec problèmes
Get-VM | Where-Object Status -ne 'Operating normally'
# Ressources disponibles
Get-VMHost | Select MemoryCapacity, LogicalProcessorCount
# Lister tous les VHDX
Get-VHD -Path "D:\VMs\*\*.vhdx" | Format-Table Path, Size, FileSize
# Compactage d'un VHDX (à VM éteinte)
Optimize-VHD -Path "D:\VMs\vm-debian-01\vm-debian-01.vhdx" -Mode Full
# Redimensionner un VHDX
Resize-VHD -Path "..." -SizeBytes 100GB
# Statistiques par VM
Measure-VM -Name "vm-debian-01"
# Désactiver Hyper-V (si besoin)
Disable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V-All
Conclusion
Avec Hyper-V vous transformez un Dédié en hyperviseur complet :
- Plusieurs OS sur un seul matériel
- Isolation entre apps (DB / web / app sur des VMs séparées)
- Snapshots avant changements risqués
- Réplication possible vers un site de secours
Pour aller plus loin :
- Migrez vers Windows Admin Center pour une UI web moderne
- Utilisez System Center Virtual Machine Manager (SCVMM) pour orchestrer plusieurs hôtes
- Pour du Linux uniquement, Proxmox VE est souvent plus pratique
- WSL2 sur Windows utilise déjà Hyper-V en arrière-plan
Ressources
- Documentation officielle : https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/
- Hyper-V Best Practices : https://learn.microsoft.com/en-us/windows-server/virtualization/hyper-v/manage/manage-hyper-v
- Tuto VeryCloud — PowerShell Remoting :
/docs/article/winrm - Tuto VeryCloud — Active Directory :
/docs/article/active-directory


















