ANAVEM
Languagefr
Plan and Execute Windows Server Upgrades Using Supported Paths

Plan and Execute Windows Server Upgrades Using Supported Paths

Master Windows Server in-place upgrades from 2012 R2 to 2025 with proper planning, supported upgrade paths, and step-by-step execution including verification commands.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
March 17, 2026 15 min 9
mediumwindows-server 6 steps 15 min

What are the supported Windows Server upgrade paths in 2026?

Planning a Windows Server upgrade requires understanding Microsoft's supported upgrade paths and following a systematic approach. With Windows Server 2025 now available, Microsoft has expanded in-place upgrade options, allowing jumps of up to four versions in some cases. However, not all upgrade paths are supported, and attempting unsupported upgrades will result in failure.

This comprehensive guide walks you through the entire process, from initial planning to post-upgrade verification, ensuring your server upgrade succeeds without data loss or extended downtime.

How do I determine my current Windows Server version and upgrade options?

Before planning any upgrade, you need to accurately identify your current Windows Server version and understand which upgrade paths are available. Microsoft maintains strict compatibility matrices that determine supported upgrade scenarios.

Start by documenting your current system configuration. Open PowerShell as Administrator and run these commands to capture essential system information:

Related: How to Install and Configure WSUS on Windows Server 2019

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

Next, identify your exact Windows Server version:

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Current Version: $($OS.Caption)"
Write-Host "Build Number: $($OS.BuildNumber)"
Write-Host "Edition: $($OS.OperatingSystemSKU)"

The upgrade path matrix for 2026 shows significant limitations for older versions:

Source VersionTo 2016To 2019To 2022To 2025
2008/2008 R2NoNoNoNo
2012YesNoNoNo
2012 R2YesYesNoYes
2016N/AYesYesYes
2019N/AN/AYesYes
2022N/AN/AN/AYes
Warning: Windows Server 2008 and 2008 R2 have no supported in-place upgrade paths to modern versions. These systems require complete migration to new hardware with fresh installations.

For systems running Windows Server 2012, you must first upgrade to 2016 before proceeding to newer versions. This creates a multi-step upgrade process that requires additional planning and downtime.

Implementation Guide

Full Procedure

01

Document Current System Configuration

Before starting any upgrade, document your current system thoroughly. This creates a baseline and helps troubleshoot issues later.

Open PowerShell as Administrator and run these commands to capture system information:

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

Document your current Windows Server version and edition:

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "Current Version: $($OS.Caption)"
Write-Host "Build Number: $($OS.BuildNumber)"
Write-Host "Edition: $($OS.OperatingSystemSKU)"

Copy these files to a USB drive or network location. This documentation will be crucial if you need to restore services or troubleshoot post-upgrade.

02

Verify Supported Upgrade Path

Not all Windows Server versions can upgrade directly to newer versions. Check the official upgrade matrix to determine your path.

Use this PowerShell command to identify your current version:

$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"

Based on Microsoft's 2026 supported upgrade paths:

Source VersionTo 2016To 2019To 2022To 2025
2008/2008 R2NoNoNoNo
2012YesNoNoNo
2012 R2YesYesNoYes
2016N/AYesYesYes
2019N/AN/AYesYes
2022N/AN/AN/AYes
Warning: Windows Server 2008 and 2008 R2 cannot be upgraded in-place to any modern version. These require migration to new hardware.
03

Prepare System and Create Backups

System preparation is critical for upgrade success. Start by installing all available updates and creating comprehensive backups.

Install Windows Updates:

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

Create a system backup using 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

Verify system requirements for the target version. For 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 for Desktop Experience)"
foreach($Drive in $Disk) {
    $FreeGB = [math]::Round($Drive.FreeSpace /1GB,2)
    Write-Host "Free Space: $FreeGB GB (Minimum: 32GB required)"
}
Pro tip: Always create a VM snapshot if running on virtualized infrastructure. This provides the fastest rollback option if the upgrade fails.
04

Download and Prepare Installation Media

Download the Windows Server 2025 ISO from the Microsoft Volume Licensing Service Center or Evaluation Center. You'll need valid credentials and licensing.

Mount the ISO file and verify its contents:

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

Verify the setup.exe file exists and check the Windows Server edition available:

$SetupPath = "${DriveLetter}:\setup.exe"
if (Test-Path $SetupPath) {
    Write-Host "Setup.exe found at: $SetupPath"
    $FileVersion = (Get-ItemProperty $SetupPath).VersionInfo.FileVersion
    Write-Host "Setup version: $FileVersion"
} else {
    Write-Host "ERROR: Setup.exe not found!"
}

Check available editions in the ISO:

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

Ensure the target edition matches your current installation (Standard to Standard, Datacenter to Datacenter). Mismatched editions will cause upgrade failures.

05

Execute the In-Place Upgrade

Now execute the actual upgrade process. This step requires careful monitoring and can take several hours depending on your system.

Navigate to the mounted ISO and launch setup with elevated privileges:

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

During the setup wizard:

  1. Enter your product key when prompted
  2. Select the same edition as your current installation
  3. Choose "Keep personal files, apps, and Windows settings" for in-place upgrade
  4. Select "Download and install updates (recommended)" for latest patches

Monitor the upgrade progress. The system will reboot multiple times. You can check progress after each reboot:

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

If the ImageState shows "IMAGE_STATE_COMPLETE", the upgrade finished successfully.

Warning: RDP connections will disconnect during the upgrade process. Use console access or plan for extended downtime. The upgrade can take 2-4 hours depending on system specifications.

Verification after upgrade completion:

$OS = Get-WmiObject -Class Win32_OperatingSystem
Write-Host "New Version: $($OS.Caption)"
Write-Host "Build Number: $($OS.BuildNumber)"
winver
06

Post-Upgrade Verification and Cleanup

After the upgrade completes, verify all services and roles are functioning correctly. This step is crucial to ensure business continuity.

Check all installed Windows features are still present:

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

Verify critical services are running:

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

Test network connectivity and domain membership:

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

Clean up upgrade files to free disk space:

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

Update Windows and install latest drivers:

Get-WUInstall -AcceptAll -Install
Get-WmiObject Win32_PnPEntity | Where-Object{$_.ConfigManagerErrorCode -ne 0} | Select-Object Name, DeviceID
Pro tip: Keep the system backup for at least 30 days after upgrade. This gives you time to identify any delayed issues that might require rollback.

Document the successful upgrade:

$UpgradeLog = @{
    "UpgradeDate" = Get-Date
    "SourceVersion" = "Previous version from documentation"
    "TargetVersion" = (Get-WmiObject Win32_OperatingSystem).Caption
    "UpgradeMethod" = "In-place upgrade"
}
$UpgradeLog | ConvertTo-Json | Out-File -FilePath C:\Temp\upgrade-log.json

Frequently Asked Questions

Can I upgrade directly from Windows Server 2008 R2 to Windows Server 2025?+
No, Windows Server 2008 and 2008 R2 have no supported in-place upgrade paths to any modern Windows Server version including 2025. These legacy systems require complete migration to new hardware with fresh installations. Microsoft ended support for these versions years ago, making migration the only viable option for modernization.
What happens if my Windows Server upgrade fails during the process?+
If an upgrade fails, Windows typically attempts to roll back to the previous version automatically. However, this process isn't always successful. This is why creating comprehensive backups and VM snapshots before starting is critical. You can restore from backup or revert to the snapshot to return to your pre-upgrade state. Always test the rollback procedure before attempting production upgrades.
How long does a Windows Server in-place upgrade typically take?+
Windows Server in-place upgrades typically take 2-4 hours depending on system specifications, installed roles, and the number of applications. Faster storage (SSDs) and more RAM reduce upgrade time significantly. Multi-step upgrades (like 2012 R2 to 2016 to 2025) require additional time for each hop. Plan for extended downtime and always perform upgrades during maintenance windows.
Do I need Software Assurance to upgrade Windows Server versions?+
Yes, Windows Server upgrades typically require Software Assurance or equivalent volume licensing agreements for free upgrades between versions. Without Software Assurance, you must purchase new licenses for the target version. Check your licensing agreement and contact Microsoft or your licensing partner to verify upgrade rights before proceeding with any upgrade project.
Can I upgrade Windows Server Core to Desktop Experience during the upgrade?+
No, you cannot change installation types during an in-place upgrade. Windows Server Core must upgrade to Core, and Desktop Experience must upgrade to Desktop Experience. Similarly, you cannot change editions (Standard to Datacenter) during in-place upgrades. If you need to change installation types or editions, you must perform a clean installation or migration to new hardware.
Emanuel DE ALMEIDA
Written by

Emanuel DE ALMEIDA

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Share your thoughts and insights

You must be logged in to comment.

Loading comments...