Jaja, je leest het goed. Windows Server 2012 R2. End-of-life sinds oktober 2023, maar in het veld kom je ze gewoon nog tegen. Soms verstopt achter een rack vol stof, soms braaf in productie alsof er niets aan de hand is. Deze keer was het tijd om er echt afscheid van te nemen.

In deze blog laat ik zien hoe ik zo’n oude 2012 R2 Domain Controller heb gemigreerd naar Windows Server 2025. Inclusief FSMO-rollen, DNS, DHCP, functional levels, DFSR, Certificate Services en een paar foutmeldingen waar je waarschijnlijk niet op zit te wachten, maar die je vroeg of laat tóch tegenkomt.

Bij deze migratie ging het niet om een simpele “next-next-finish”-upgrade. De oude server draaide nog Windows Server 2012 R2 en had alle FSMO-rollen. Daarnaast stonden er ook nog rollen zoals DNS, DHCP en Active Directory Certificate Services op. Kortom: zo’n server waarvan je weet dat hij ooit weg moet, maar waar stiekem nog best veel aan hangt.

De uiteindelijke route werd:

Windows Server 2012 R2 DC

Windows Server 2022 DC (tussenstap)

Functional level → Windows Server 2016

Windows Server 2025 DC

Waarom die tussenstap via 2022?

Mijn eerste gedachte was simpel: nieuwe Server 2025 installeren, toevoegen als extra Domain Controller, FSMO-rollen verplaatsen en klaar.

Maar tijdens de promotie van Server 2025 kwam deze foutmelding:

Verification of replica failed.
The forest functional level is not supported.
To install a Windows Server 2025 domain controller,
the forest functional level must be Windows Server 2016 or higher.

En daar zat meteen de blocker.

Mijn domein stond nog op:

  • Forest functional level: Windows Server 2012 R2
  • Domain functional level: Windows Server 2012 R2

Omdat er nog een 2012 R2 Domain Controller actief was, kon ik het functional level niet zomaar naar 2016 verhogen. Eerst moest er dus een ondersteunde tussenstap komen.

Wat je nodig hebt

  • Bestaande Windows Server 2012 R2 Domain Controller
  • Nieuwe Windows Server 2022 server
  • Nieuwe Windows Server 2025 server
  • Domain Admin / Enterprise Admin rechten
  • Toegang tot DNS, DHCP en AD Sites and Services
  • Goede back-up van de oude Domain Controller
  • Geduld 🙂

Belangrijk: maak vooraf minimaal een System State backup van de oude Domain Controller. Zeker als daar ook Certificate Services, DNS of DHCP op draait.

Stap 1 – Controleer eerst DFSR / SYSVOL

Voordat je begint, controleer je of SYSVOL al via DFSR loopt. Op de oude 2012 R2 DC:

dfsrmig /getglobalstate
dfsrmig /getmigrationstate

De gewenste status is:

Current DFSR global state: Eliminated

Controleer ook of SYSVOL en NETLOGON beschikbaar zijn:

net share

Mocht dfsrmig niet gevonden worden, controleer of de DFS Replication-role aanwezig is:

Get-WindowsFeature FS-DFS-Replication
# Installeren indien nodig:
Install-WindowsFeature FS-DFS-Replication -IncludeManagementTools

Stap 2 – Server 2022 installeren als tussenstap

Op de nieuwe Server 2022:

Install-WindowsFeature AD-Domain-Services,DNS -IncludeManagementTools

Promoveren tot extra Domain Controller:

Install-ADDSDomainController `
    -DomainName "jouwdomein.local" `
    -InstallDns `
    -Credential (Get-Credential)

DNS-instelling tijdens de promotie: Preferred DNS = IP-adres oude 2012 R2 DC, Alternate DNS = leeg.

Na promotie controleren:

net share
repadmin /replsummary
dcdiag /v /c /e

SYSVOL en NETLOGON moeten zichtbaar zijn op de nieuwe 2022 DC.

Stap 3 – FSMO-rollen verplaatsen naar Server 2022

Controleer eerst waar de rollen staan:

netdom query fsmo

Verplaatsen naar de nieuwe 2022 DC:

Move-ADDirectoryServerOperationMasterRole `
    -Identity "NAAM-DC2022" `
    -OperationMasterRole SchemaMaster,DomainNamingMaster,PDCEmulator,RIDMaster,InfrastructureMaster

Controleer daarna opnieuw met netdom query fsmo. Alle vijf rollen moeten op Server 2022 staan.

Stap 4 – Oude 2012 R2 Domain Controller demoten

Hier liep ik tegen de volgende verrassing aan. Bij het demoten van de oude 2012 R2 DC:

Verification of prerequisites for Domain Controller demotion failed.
Certificate Server is installed.

Op de oude Domain Controller draaide ook nog Active Directory Certificate Services — die rol blokkeerde de demotion.

Eerst back-up maken:

mkdir C:\CA-Backup
certutil -backupdb C:\CA-Backup
certutil -backupkey C:\CA-Backup
reg export HKLM\SYSTEM\CurrentControlSet\Services\CertSvc\Configuration C:\CA-Backup\CA-Config.reg
certutil -getconfig > C:\CA-Backup\CA-Config.txt
certutil -dump > C:\CA-Backup\CA-Dump.txt

Daarna via Server Manager → Remove Roles and Features → Active Directory Certificate Services verwijderen en rebooten.

Na de reboot kon de demotion wel:

Uninstall-ADDSDomainController

Let op: niet forceren tenzij je echt geen andere optie hebt.

Stap 5 – Functional level verhogen naar 2016

Controleer eerst of de 2012 R2 DC volledig weg is:

Get-ADDomainController -Filter * |
    Select-Object HostName,OperatingSystem,IsGlobalCatalog,OperationMasterRoles

Controleer het huidige functional level:

Get-ADDomain  | Select-Object DomainMode
Get-ADForest  | Select-Object ForestMode

Verhogen:

Set-ADDomainMode  -Identity "jouwdomein.local" -DomainMode  Windows2016Domain
Set-ADForestMode  -Identity "jouwdomein.local" -ForestMode  Windows2016Forest

Gewenste output na controle:

DomainMode : Windows2016Domain
ForestMode : Windows2016Forest

Nu is de omgeving klaar voor Server 2025.

Stap 6 – Server 2025 toevoegen als extra Domain Controller

Op de nieuwe Server 2025:

Install-WindowsFeature AD-Domain-Services,DNS -IncludeManagementTools

Install-ADDSDomainController `
    -DomainName "jouwdomein.local" `
    -InstallDns `
    -Credential (Get-Credential)

DNS-instelling tijdens de promotie: Preferred DNS = IP-adres van Server 2022 DC.

Na promotie controleren:

net share
repadmin /replsummary
dcdiag /test:Advertising /test:SysVolCheck /test:NetLogons /v
dcdiag /test:dns /v

Stap 7 – Advertising-fout oplossen

Na de promotie kreeg ik nog een issue:

DC01 failed test Advertising

En bij nltest /dsregdns:

connection status = 1311 0x51f ERROR_NO_LOGON_SERVERS

De oorzaak zat in DNS. De oplossing: zet de nieuwe DC tijdelijk zo:

  • Preferred DNS: IP-adres van de Server 2022 DC
  • Alternate DNS: eigen IP-adres van DC01

Daarna:

ipconfig /flushdns
ipconfig /registerdns
nltest /dsregdns
net stop netlogon
net start netlogon

Opnieuw testen:

dcdiag /test:Advertising /v /s:DC01
dcdiag /test:dns /v /s:DC01

Toen Advertising, SysVolCheck en NetLogons groen waren, kon ik verder.

Stap 8 – FSMO-rollen naar Server 2025

Move-ADDirectoryServerOperationMasterRole `
    -Identity "DC01" `
    -OperationMasterRole SchemaMaster,DomainNamingMaster,PDCEmulator,RIDMaster,InfrastructureMaster

netdom query fsmo

Tijdservice instellen op de PDC Emulator:

w32tm /config /manualpeerlist:"nl.pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update
net stop w32time
net start w32time
w32tm /resync
w32tm /query /status

Stap 9 – DNS afronden

DNS op DC01 uiteindelijk zo ingesteld:

  • Preferred DNS: eigen IP van DC01
  • Alternate DNS: leeg

Een dcdiag /test:dns gaf initieel een RReg fail — opgelost door de tweede DNS-server te verwijderen zodat DC01 alleen zichzelf gebruikte. Daarna:

ipconfig /registerdns
nltest /dsregdns

Een Basc warning is niet altijd fataal. Dat gaat vaak over forwarders of root hints, niet over de interne AD-DNS-records die echt tellen.

Stap 10 – DHCP migreren naar Server 2025

Op Server 2025:

Install-WindowsFeature DHCP -IncludeManagementTools
Add-DhcpServerSecurityGroup
Restart-Service DHCPServer

Export vanaf de oude DHCP-server:

mkdir C:\DHCP-Export

Export-DhcpServer `
    -ComputerName "OUDE-SERVERNAAM" `
    -Leases `
    -File "C:\DHCP-Export\dhcp-export.xml" `
    -Verbose

Importeren op DC01:

mkdir C:\DHCP-Backup

Import-DhcpServer `
    -Leases `
    -File "C:\DHCP-Import\dhcp-export.xml" `
    -BackupPath "C:\DHCP-Backup" `
    -Verbose

Autoriseren in Active Directory:

Add-DhcpServerInDC -DnsName "DC01.jouwdomein.local" -IPAddress "IP-VAN-DC01"

DNS-optie bijwerken zodat clients de nieuwe DC krijgen:

Set-DhcpServerv4OptionValue `
    -DnsServer "IP-VAN-DC01" `
    -DnsDomain "jouwdomein.local"

DHCP op de oude server stoppen:

Stop-Service DHCPServer
Set-Service DHCPServer -StartupType Disabled

Test op een client:

ipconfig /release
ipconfig /renew
ipconfig /all

Stap 11 – Server 2022 demoten

Eerst de eindcontrole op DC01:

netdom query fsmo
repadmin /replsummary
dcdiag /v /c /e
dcdiag /test:dns /v /s:DC01

Dan op de 2022 DC:

Uninstall-ADDSDomainController

Na reboot controleren of 2022 niet meer als DC verschijnt:

Get-ADDomainController -Filter * |
    Select-Object HostName,OperatingSystem,IsGlobalCatalog,OperationMasterRoles

Veelvoorkomende issues

Server 2025 promotie faalt op functional level

The forest functional level must be Windows Server 2016 or higher.

Oplossing: tussenstap via Server 2022 → FSMO verplaatsen → 2012 R2 demoten → FFL/DFL verhogen → dan pas Server 2025 toevoegen.

Demotion faalt: Certificate Server is installed

Back-up maken, daarna via Server Manager Active Directory Certificate Services verwijderen, reboot, dan opnieuw demoten.

dcdiag geeft Advertising fails

net share
repadmin /replsummary
dcdiag /test:Advertising /v /s:DC01
dcdiag /test:SysVolCheck /v /s:DC01
dcdiag /test:NetLogons /v /s:DC01

ipconfig /flushdns
ipconfig /registerdns
nltest /dsregdns
net stop netlogon && net start netlogon

dcdiag /test:dns geeft RReg fail

Zet de DNS tijdelijk op de werkende DC, registreer opnieuw en test:

ipconfig /registerdns
nltest /dsregdns
dcdiag /test:dns /v /s:DC01

Eindcontrole

Aan het einde wil je dit zien:

netdom query fsmo
repadmin /replsummary
dcdiag /v /c /e
dcdiag /test:dns /v /s:DC01

Get-ADDomainController -Filter * |
    Select-Object HostName,OperatingSystem,IsGlobalCatalog,OperationMasterRoles

Gewenste situatie:

  • Alle FSMO-rollen op DC01 (Server 2025)
  • DC01 is Global Catalog
  • SYSVOL en NETLOGON aanwezig
  • DNS werkt, RReg passed
  • DHCP draait op DC01
  • Oude 2012 R2 DC weg
  • Tussenserver 2022 gedemote

Conclusie

Deze migratie was goed te doen, maar zeker geen simpele “even een nieuwe DC erbij”-actie. Windows Server 2025 verwacht een modernere AD-basis dan een oude 2012 R2-omgeving standaard heeft. Daardoor is de tussenstap via Server 2022 soms de netste en veiligste route.

Mijn checklist voor de volgende keer:

  1. Eerst DFSR controleren
  2. Dan AD-health controleren (dcdiag, repadmin)
  3. Dan tussen-DC installeren (2022)
  4. FSMO pas verplaatsen als SYSVOL/NETLOGON goed zijn
  5. Certificate Services niet vergeten vóór de demotion
  6. Functional level pas verhogen als oude DC’s echt weg zijn
  7. Server 2025 pas toevoegen als FFL/DFL op 2016 staan
  8. DNS niet onderschatten
  9. DHCP pas migreren als AD/DNS stabiel is

Niet spannend als je stap voor stap werkt — maar wel een migratie waarbij je goed moet blijven controleren.