Référence
Tutorialmedium

Planifier et exécuter les mises à niveau de Windows Server avec les chemins pris en charge

Emanuel DE ALMEIDA
3/13/202603:15 AM 15 min read 3 views
Planifier et exécuter les mises à niveau de Windows Server avec les chemins pris en charge

Quelles sont les voies de mise à niveau de Windows Server prises en charge en 2026 ?

Planifier une mise à niveau de Windows Server nécessite de comprendre les voies de mise à niveau prises en charge par Microsoft et de suivre une approche systématique. Avec Windows Server 2025 désormais disponible, Microsoft a élargi les options de mise à niveau sur place, permettant des sauts allant jusqu'à quatre versions dans certains cas. Cependant, toutes les voies de mise à niveau ne sont pas prises en charge, et tenter des mises à niveau non prises en charge entraînera un échec.

Ce guide complet vous guide à travers tout le processus, de la planification initiale à la vérification post-mise à niveau, garantissant que votre mise à niveau de serveur réussit sans perte de données ni temps d'arrêt prolongé.

Comment déterminer ma version actuelle de Windows Server et les options de mise à niveau ?

Avant de planifier toute mise à niveau, vous devez identifier avec précision votre version actuelle de Windows Server et comprendre quelles voies de mise à niveau sont disponibles. Microsoft maintient des matrices de compatibilité strictes qui déterminent les scénarios de mise à niveau pris en charge.

Commencez par documenter la configuration actuelle de votre système. Ouvrez PowerShell en tant qu'administrateur et exécutez ces commandes pour capturer les informations système essentielles :

Get-ComputerInfo -Property WindowsBuildLabEx,WindowsEditionID,TotalPhysicalMemory | Out-File -FilePath C:\Temp\computerinfo.txt
systeminfo.exe | Out-File -FilePath C:\Temp\systeminfo.txt
ipconfig /all | Out-File -FilePath C:\Temp\ipconfig.txt
Get-WindowsFeature | Where-Object InstallState -eq "Installed" | Out-File -FilePath C:\Temp\installed-features.txt

Ensuite, identifiez votre version exacte de Windows Server :

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Version actuelle : $($OS.Caption)"
Write-Host "Numéro de build : $($OS.BuildNumber)"
Write-Host "Édition : $($OS.OperatingSystemSKU)"

La matrice des voies de mise à niveau pour 2026 montre des limitations significatives pour les versions plus anciennes :

Version sourceVers 2016Vers 2019Vers 2022Vers 2025
2008/2008 R2NonNonNonNon
2012OuiNonNonNon
2012 R2OuiOuiNonOui
2016N/AOuiOuiOui
2019N/AN/AOuiOui
2022N/AN/AN/AOui
Avertissement : Windows Server 2008 et 2008 R2 n'ont pas de voies de mise à niveau sur place prises en charge vers les versions modernes. Ces systèmes nécessitent une migration complète vers un nouveau matériel avec de nouvelles installations.

Pour les systèmes exécutant Windows Server 2012, vous devez d'abord passer à 2016 avant de passer à des versions plus récentes. Cela crée un processus de mise à niveau en plusieurs étapes qui nécessite une planification et un temps d'arrêt supplémentaires.

Quelles exigences système dois-je vérifier avant de mettre à niveau Windows Server ?

La vérification des exigences système prévient les échecs de mise à niveau et garantit des performances optimales après la mise à niveau. Windows Server 2025 a des prérequis matériels et logiciels spécifiques qui doivent être respectés.

Vérifiez les spécifications matérielles de votre système :

$RAM = [math]::Round((Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb,2)
$CPU = Get-WmiObject -Class Win32_Processor | Select-Object Name, NumberOfCores, NumberOfLogicalProcessors
$Disk = Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" | Select-Object Size,FreeSpace

Write-Host "RAM : $RAM GB (Minimum : 2GB pour Desktop Experience, 512MB pour Core)"
Write-Host "CPU : $($CPU.Name) - Cœurs : $($CPU.NumberOfCores), Logique : $($CPU.NumberOfLogicalProcessors)"
foreach($Drive in $Disk) {
    $FreeGB = [math]::Round($Drive.FreeSpace /1GB,2)
    $TotalGB = [math]::Round($Drive.Size /1GB,2)
    Write-Host "Espace disque : $FreeGB GB libre sur $TotalGB GB au total (Minimum : 32GB requis)"
}

Vérifiez les exigences de licence. Les mises à niveau de Windows Server nécessitent une assurance logicielle valide ou une licence équivalente :

$LicenseStatus = Get-CimInstance -ClassName SoftwareLicensingProduct | Where-Object {$_.PartialProductKey -and $_.Name -like "*Windows Server*"}
$LicenseStatus | Select-Object Name, LicenseStatus, GracePeriodRemaining

Vérifiez la présence de logiciels ou de rôles incompatibles qui pourraient bloquer la mise à niveau :

Get-WindowsFeature | Where-Object InstallState -eq "Installed" | Select-Object Name, InstallState
Get-WmiObject -Class Win32_Product | Where-Object Name -like "*antivirus*" | Select-Object Name, Version
Astuce pro : Documentez toutes les versions de logiciels tiers avant la mise à niveau. Certaines applications peuvent nécessiter des mises à jour ou une réinstallation après la mise à niveau de Windows Server.

Comment préparer mon système Windows Server pour la mise à niveau ?

Une préparation adéquate du système réduit considérablement le risque d'échec de la mise à niveau et assure une récupération plus rapide en cas de problème. Cette phase implique la mise à jour du système actuel, la création de sauvegardes et la préparation des supports d'installation.

Commencez par installer toutes les mises à jour Windows disponibles. Les systèmes obsolètes rencontrent fréquemment des échecs de mise à niveau :

Install-Module PSWindowsUpdate -Force -Scope CurrentUser
Import-Module PSWindowsUpdate
Get-WUInstall -AcceptAll -AutoReboot

Créez des sauvegardes système complètes à l'aide de Windows Server Backup :

Import-Module WindowsServerBackup
$Policy = New-WBPolicy
$BackupLocation = New-WBBackupTarget -VolumePath "E:\"
Add-WBBackupTarget -Policy $Policy -Target $BackupLocation
$SystemVolume = Get-WBVolume -VolumePath "C:\"
Add-WBVolume -Policy $Policy -Volume $SystemVolume
Start-WBBackup -Policy $Policy

Pour les environnements virtualisés, créez des instantanés de VM comme mesure de sécurité supplémentaire :

# Pour les environnements Hyper-V
Checkpoint-VM -Name "YourServerName" -SnapshotName "Pre-Upgrade-$(Get-Date -Format 'yyyy-MM-dd-HHmm')"
# Vérifiez la création de l'instantané
Get-VMSnapshot -VMName "YourServerName" | Select-Object Name, CreationTime

Téléchargez l'ISO de Windows Server 2025 depuis le Microsoft Volume Licensing Service Center. Montez et vérifiez les supports d'installation :

$ISOPath = "C:\Downloads\WindowsServer2025.iso"
$MountResult = Mount-DiskImage -ImagePath $ISOPath -PassThru
$DriveLetter = ($MountResult | Get-Volume).DriveLetter
Write-Host "ISO monté sur le lecteur : $DriveLetter"

# Vérifiez les fichiers d'installation
$SetupPath = "${DriveLetter}:\\setup.exe"
if (Test-Path $SetupPath) {
    $FileVersion = (Get-ItemProperty $SetupPath).VersionInfo.FileVersion
    Write-Host "Version du programme d'installation : $FileVersion"
    dism /Get-WimInfo /WimFile:"${DriveLetter}:\\sources\\install.wim"
}

Quel est le processus étape par étape pour exécuter une mise à niveau sur place de Windows Server ?

Le processus de mise à niveau sur place nécessite une exécution et une surveillance minutieuses. Contrairement aux installations propres, les mises à niveau sur place préservent votre configuration, vos applications et vos données existantes tout en mettant à jour le système d'exploitation sous-jacent.

Lancez le processus de mise à niveau à partir de l'ISO monté avec des privilèges administratifs :

Start-Process -FilePath "${DriveLetter}:\\setup.exe" -Verb RunAs

Lors de l'assistant d'installation, faites ces sélections critiques :

  1. Clé de produit : Entrez votre clé de licence Windows Server 2025
  2. Sélection de l'édition : Choisissez la même édition que votre installation actuelle (Standard/Datacenter)
  3. Type d'installation : Sélectionnez "Conserver les fichiers personnels, les applications et les paramètres Windows"
  4. Mises à jour : Choisissez "Télécharger et installer les mises à jour (recommandé)"

Surveillez la progression de la mise à niveau tout au long du processus. Le système redémarrera plusieurs fois, et vous pouvez vérifier l'état après chaque redémarrage :

Get-ItemProperty "HKLM:SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Setup\\State" | Select-Object ImageState
# IMAGE_STATE_COMPLETE indique une réussite

Suivez les phases de mise à niveau à l'aide des fichiers journaux d'installation :

Get-Content "C:\\Windows\\Panther\\setupact.log" | Select-Object -Last 20
# Surveillez les messages d'erreur ou l'état de complétion
Avertissement : Les connexions RDP seront déconnectées pendant le processus de mise à niveau. Assurez-vous d'avoir un accès console (physique, iLO, iDRAC) ou prévoyez un temps d'arrêt prolongé pour l'accès à distance. La mise à niveau prend généralement 2 à 4 heures.

Pour les mises à niveau en plusieurs étapes (comme 2012 R2 → 2016 → 2025), répétez ce processus pour chaque saut. Laissez le système se stabiliser complètement entre les mises à niveau et vérifiez la fonctionnalité avant de passer à la version suivante.

Comment vérifier et résoudre les problèmes après la mise à niveau ?

La vérification post-mise à niveau garantit que tous les services, rôles et applications fonctionnent correctement dans le nouvel environnement. Cette phase identifie les problèmes tôt et offre l'opportunité de les résoudre avant que les utilisateurs ne soient affectés.

Vérifiez que la mise à niveau s'est terminée avec succès :

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Nouvelle version : $($OS.Caption)"
Write-Host "Numéro de build : $($OS.BuildNumber)"
Write-Host "Date d'installation : $($OS.InstallDate)"
winver # Ouvre la boîte de dialogue de version

Comparez les fonctionnalités Windows installées avant et après la mise à niveau :

$PreUpgradeFeatures = Get-Content C:\\Temp\\installed-features.txt
$PostUpgradeFeatures = Get-WindowsFeature | Where-Object InstallState -eq "Installed" | Select-Object -ExpandProperty Name
$MissingFeatures = Compare-Object $PreUpgradeFeatures $PostUpgradeFeatures | Where-Object SideIndicator -eq "<="
if ($MissingFeatures) {
    Write-Host "Fonctionnalités manquantes détectées :" -ForegroundColor Red
    $MissingFeatures.InputObject
}

Testez les services système critiques et la connectivité réseau :

# Vérifiez les services critiques
$CriticalServices = @("Spooler", "DHCP", "DNS", "W32Time", "EventLog", "Netlogon")
foreach ($Service in $CriticalServices) {
    $Status = Get-Service -Name $Service -ErrorAction SilentlyContinue
    if ($Status) {
        Write-Host "$Service : $($Status.Status)" -ForegroundColor $(if($Status.Status -eq "Running"){"Green"}else{"Red"})
    }
}

# Testez la connectivité au domaine
Test-ComputerSecureChannel -Verbose
nltest /dsgetdc:$env:USERDNSDOMAIN

Nettoyez les fichiers de mise à niveau et optimisez les performances du système :

# Supprimez les anciens fichiers d'installation de Windows
Dism /online /Cleanup-Image /StartComponentCleanup /ResetBase
# Exécutez le nettoyage de disque
Cleanmgr /sagerun:1
# Vérifiez la récupération de l'espace disque
Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" | Select-Object @{Name="Drive";Expression={$_.DeviceID}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}

Installez les dernières mises à jour et pilotes pour le nouveau système d'exploitation :

Get-WUInstall -AcceptAll -Install
# Vérifiez les problèmes matériels
Get-WmiObject Win32_PnPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select-Object Name, DeviceID
Astuce pro : Conservez votre sauvegarde système pendant au moins 30 jours après la mise à niveau. Cela vous laisse suffisamment de temps pour identifier tout problème de compatibilité retardé qui pourrait nécessiter un retour en arrière.

Documentez la mise à niveau réussie pour référence future et conformité :

$UpgradeLog = @{
    "UpgradeDate" = Get-Date
    "SourceVersion" = "Document from pre-upgrade capture"
    "TargetVersion" = (Get-WmiObject Win32_OperatingSystem).Caption
    "UpgradeMethod" = "In-place upgrade"
    "DowntimeHours" = "Document actual downtime"
    "IssuesEncountered" = "List any problems resolved"
}
$UpgradeLog | ConvertTo-Json | Out-File -FilePath C:\\Temp\\upgrade-log.json

Cette approche systématique des mises à niveau de Windows Server minimise les risques tout en garantissant une migration réussie vers des versions plus récentes du système d'exploitation. Suivre ces procédures et étapes de vérification vous assure confiance dans votre environnement mis à niveau et maintient la continuité des affaires tout au long du processus.

Execution Steps

1

Documenter la configuration actuelle du système

Avant de commencer toute mise à niveau, documentez votre système actuel de manière approfondie. Cela crée une base de référence et aide à résoudre les problèmes plus tard.

Ouvrez PowerShell en tant qu'administrateur et exécutez ces commandes pour capturer les informations système :

Get-ComputerInfo -Property WindowsBuildLabEx,WindowsEditionID,TotalPhysicalMemory | Out-File -FilePath C:\Temp\computerinfo.txt
systeminfo.exe | Out-File -FilePath C:\Temp\systeminfo.txt
ipconfig /all | Out-File -FilePath C:\Temp\ipconfig.txt
Get-WindowsFeature | Where-Object InstallState -eq "Installed" | Out-File -FilePath C:\Temp\installed-features.txt

Documentez votre version et édition actuelles de Windows Server :

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Version actuelle : $($OS.Caption)"
Write-Host "Numéro de build : $($OS.BuildNumber)"
Write-Host "Édition : $($OS.OperatingSystemSKU)"

Copiez ces fichiers sur une clé USB ou un emplacement réseau. Cette documentation sera cruciale si vous devez restaurer des services ou résoudre des problèmes après la mise à niveau.

2

Vérifier le chemin de mise à niveau pris en charge

Toutes les versions de Windows Server ne peuvent pas être mises à niveau directement vers des versions plus récentes. Consultez la matrice de mise à niveau officielle pour déterminer votre chemin.

Utilisez cette commande PowerShell pour identifier votre version actuelle :

$Version = (Get-ItemProperty "HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion").ReleaseId
$Build = (Get-ItemProperty "HKLM:SOFTWARE\Microsoft\Windows NT\CurrentVersion").CurrentBuild
Write-Host "Release ID: $Version, Build: $Build"

Basé sur les chemins de mise à niveau pris en charge par Microsoft en 2026 :

Version SourceVers 2016Vers 2019Vers 2022Vers 2025
2008/2008 R2NonNonNonNon
2012OuiNonNonNon
2012 R2OuiOuiNonOui
2016N/AOuiOuiOui
2019N/AN/AOuiOui
2022N/AN/AN/AOui
Avertissement : Windows Server 2008 et 2008 R2 ne peuvent pas être mis à niveau sur place vers une version moderne. Ceux-ci nécessitent une migration vers un nouveau matériel.
3

Préparer le système et créer des sauvegardes

La préparation du système est essentielle pour le succès de la mise à niveau. Commencez par installer toutes les mises à jour disponibles et créer des sauvegardes complètes.

Installer les mises à jour Windows :

Install-Module PSWindowsUpdate -Force
Get-WUInstall -AcceptAll -AutoReboot

Créer une sauvegarde système à l'aide de Windows Server Backup :

Import-Module WindowsServerBackup
$Policy = New-WBPolicy
$VolumeBackupLocation = New-WBBackupTarget -VolumePath "E:"
Add-WBBackupTarget -Policy $Policy -Target $VolumeBackupLocation
$Volume = Get-WBVolume -VolumePath "C:"
Add-WBVolume -Policy $Policy -Volume $Volume
Start-WBBackup -Policy $Policy

Vérifiez les exigences système pour la version cible. Pour Windows Server 2025 :

$RAM = [math]::Round((Get-CimInstance Win32_PhysicalMemory | Measure-Object -Property capacity -Sum).sum /1gb,2)
$Disk = Get-WmiObject -Class Win32_LogicalDisk -Filter "DriveType=3" | Select-Object Size,FreeSpace
Write-Host "RAM: $RAM GB (Minimum: 2GB pour Desktop Experience)"
foreach($Drive in $Disk) {
    $FreeGB = [math]::Round($Drive.FreeSpace /1GB,2)
    Write-Host "Espace libre: $FreeGB GB (Minimum: 32GB requis)"
}
Astuce pro : Créez toujours un instantané de VM si vous utilisez une infrastructure virtualisée. Cela offre l'option de retour en arrière la plus rapide en cas d'échec de la mise à niveau.
4

Télécharger et préparer le support d'installation

Téléchargez l'ISO de Windows Server 2025 depuis le Microsoft Volume Licensing Service Center ou le Centre d'évaluation. Vous aurez besoin de justificatifs et de licences valides.

Montez le fichier ISO et vérifiez son contenu :

$ISOPath = "C:\Downloads\WindowsServer2025.iso"
$MountResult = Mount-DiskImage -ImagePath $ISOPath -PassThru
$DriveLetter = ($MountResult | Get-Volume).DriveLetter
Write-Host "ISO monté sur le lecteur : $DriveLetter"
Get-ChildItem "${DriveLetter}:\" | Select-Object Name,Length

Vérifiez que le fichier setup.exe existe et vérifiez l'édition de Windows Server disponible :

$SetupPath = "${DriveLetter}:\setup.exe"
if (Test-Path $SetupPath) {
    Write-Host "Setup.exe trouvé à : $SetupPath"
    $FileVersion = (Get-ItemProperty $SetupPath).VersionInfo.FileVersion
    Write-Host "Version du setup : $FileVersion"
} else {
    Write-Host "ERREUR : Setup.exe non trouvé !"
}

Vérifiez les éditions disponibles dans l'ISO :

dism /Get-WimInfo /WimFile:"${DriveLetter}:\sources\install.wim"

Assurez-vous que l'édition cible correspond à votre installation actuelle (Standard à Standard, Datacenter à Datacenter). Des éditions non correspondantes entraîneront des échecs de mise à niveau.

5

Exécuter la mise à niveau sur place

Exécutez maintenant le processus de mise à niveau réel. Cette étape nécessite une surveillance attentive et peut prendre plusieurs heures selon votre système.

Accédez à l'ISO monté et lancez l'installation avec des privilèges élevés :

Start-Process -FilePath "${DriveLetter}:\setup.exe" -Verb RunAs

Lors de l'assistant d'installation :

  1. Entrez votre clé de produit lorsque cela est demandé
  2. Sélectionnez la même édition que votre installation actuelle
  3. Choisissez "Conserver les fichiers personnels, les applications et les paramètres Windows" pour une mise à niveau sur place
  4. Sélectionnez "Télécharger et installer les mises à jour (recommandé)" pour les derniers correctifs

Surveillez la progression de la mise à niveau. Le système redémarrera plusieurs fois. Vous pouvez vérifier la progression après chaque redémarrage :

Get-ItemProperty "HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Setup\State" | Select-Object ImageState

Si l'ImageState affiche "IMAGE_STATE_COMPLETE", la mise à niveau s'est terminée avec succès.

Avertissement : Les connexions RDP seront déconnectées pendant le processus de mise à niveau. Utilisez l'accès console ou prévoyez un temps d'arrêt prolongé. La mise à niveau peut prendre 2 à 4 heures selon les spécifications du système.

Vérification après la fin de la mise à niveau :

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Nouvelle version : $($OS.Caption)"
Write-Host "Numéro de build : $($OS.BuildNumber)"
winver
6

Vérification et nettoyage après mise à niveau

Après la fin de la mise à niveau, vérifiez que tous les services et rôles fonctionnent correctement. Cette étape est cruciale pour assurer la continuité des activités.

Vérifiez que toutes les fonctionnalités Windows installées sont toujours présentes :

Compare-Object (Get-Content C:\Temp\installed-features.txt) (Get-WindowsFeature | Where-Object InstallState -eq "Installed" | Select-Object -ExpandProperty Name)

Vérifiez que les services critiques sont en cours d'exécution :

$CriticalServices = @("Spooler", "DHCP", "DNS", "W32Time", "EventLog")
foreach ($Service in $CriticalServices) {
    $Status = Get-Service -Name $Service -ErrorAction SilentlyContinue
    if ($Status) {
        Write-Host "$Service`: $($Status.Status)"
    }
}

Testez la connectivité réseau et l'appartenance au domaine :

Test-ComputerSecureChannel -Verbose
nltest /dsgetdc:$env:USERDNSDOMAIN

Nettoyez les fichiers de mise à niveau pour libérer de l'espace disque :

Dism /online /Cleanup-Image /StartComponentCleanup /ResetBase
Cleanmgr /sagerun:1

Mettez à jour Windows et installez les derniers pilotes :

Get-WUInstall -AcceptAll -Install
Get-WmiObject Win32_PnPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select-Object Name, DeviceID
Astuce pro : Conservez la sauvegarde du système pendant au moins 30 jours après la mise à niveau. Cela vous donne le temps d'identifier tout problème retardé qui pourrait nécessiter un retour en arrière.

Documentez la mise à niveau réussie :

$UpgradeLog = @{
    "UpgradeDate" = Get-Date
    "SourceVersion" = "Version précédente de la documentation"
    "TargetVersion" = (Get-WmiObject Win32_OperatingSystem).Caption
    "UpgradeMethod" = "Mise à niveau sur place"
}
$UpgradeLog | ConvertTo-Json | Out-File -FilePath C:\Temp\upgrade-log.json

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...