DHCP rolü, kurumsal ağların sessiz ama kritik bileşenlerinden biridir. Çalıştığı sürece fark edilmez; durduğunda ise kullanıcılar IP alamaz, bağlantılar kopar yardım masası telefonları susmaz. nedenle eski Windows Server ortamından Windows Server 2025’e geçiş planlanırken DHCP taşıma işlemi dikkatle ele alınması gereken adımdır.

Microsoft’un sunduğu Export-DhcpServer Import-DhcpServer PowerShell cmdlet’leri, scope’ları, rezervasyonları, seçenekleri isteğe bağlı olarak lease kayıtlarını tek XML dosyası üzerinden taşımaya olanak tanır. Yöntem pratiktir. Ancak yıllardır çalışan sunuculardan alınan export dosyaları, yeni sürümlerin artık desteklemediği eski protokollere ait kalıntılar içerebilir. yazıda kalıntıların yol açtığı iki tipik hatayı, nedenlerini güvenli çözüm yolunu ele alacağız.

Karşılaşılan Hatalar

Eski sunucudan alınan export dosyası Windows Server 2025 üzerinde içe aktarılırken aşağıdaki hatalardan biri veya her ikisi görülebilir:

  • Network Access Protection is not supported by the server. (20138)
  • XML schema validation failed: The element 'IPv4' has invalid child element 'NpsUnreachableAction'

Her iki mesaj farklı görünse aynı temel sorundan kaynaklanır: Export dosyasında hedef sunucunun tanımadığı alanların bulunması.

Network Access Protection (NAP)

Network Access Protection (NAP), istemcilerin ağa bağlanmadan önce sağlık durumlarının (güvenlik duvarı, antivirüs, güncelleme seviyesi gibi) denetlenmesini amaçlayan teknolojiydi. DHCP tarafında mekanizmayla entegre çalışabiliyordu. Windows Server 2012 R2 kullanımdan kaldırıldı Windows Server 2016 sonraki sürümlerde yer almıyor.

Burada önemli ayrım yapmak gerekir: NPS (Network Policy Server) hizmeti ortadan kalkmadı. NPS, RADIUS işlevleriyle kullanılmaya devam ediyor. Kaldırılan, NAP bileşeni ona bağlı sağlık denetimi altyapısıdır.

Hatanın teknik kaynağı ortamınızda NAP’ı hiç kullanmamış olsanız bile, DHCP export dosyası NapEnabled NpsUnreachableAction gibi eski alanları barındırabilir. alanlar scope yapılandırmasının parçası olarak dosyaya yazılmıştır. Windows Server 2025 üzerindeki DHCP modülü hedef XML şeması alanları tanımadığında, import işlemi ya 20138 koduyla ya şema doğrulama hatasıyla sonlanır.

Çözüm Yaklaşımı

Çözümün mantığı basittir: Export dosyasındaki NAP NPS ilişkili düğümleri kaldırarak hedef şemayla uyumlu, temizlenmiş kopya oluşturmak İmport işlemini kopya üzerinden yapmak.

noktada tek kural vardır: Orjinal export dosyasını asla değiştirmeyin. Temizleme işlemi her zaman ayrı dosya üzerine kaydedilmelidir; böylece sorun çıktığında başlangıç noktasına dönebilirsiniz.

Export Alma

Temizlik işlemine geçmeden önce sunucudan export dosyasını aldığınızdan emin. Lease bilgilerini taşımayı planlıyorsanız -Leases parametresini kullanın:

Export-DhcpServer -ComputerName "ESKI-DHCP" -File "C:\backup\dhcp_raw.xml" -Leases NAP/NPS Düğümlerini XML’den Temizleme

Aşağıdaki script, adı Nap veya Nps başlayan tüm XML düğümlerini bulur, bağlı oldukları üst düğümden çıkarır sonucu yeni dosyaya kaydeder:

[xml]$xml = Get-Content "C:\backup\dhcp_raw.xml" $nodes = $xml.SelectNodes("//*[starts-with(name(),'Nap') or starts-with(name(),'Nps')]") foreach ($n in $nodes) { [void]$n.ParentNode.RemoveChild($n) } $xml.Save("C:\backup\dhcp_clean.xml")

Script’in çalışma mantığı şöyledir:

  • İlk satır XML dosyasını belleğe, düzenlenebilir XML nesnesi olarak yükler.
  • SelectNodes içindeki XPath ifadesi, dokümanın herhangi seviyesinde adı Nap veya Nps başlayan tüm öğeleri seçer.
  • foreach döngüsü her düğümü kendi üst düğümünden kaldırır. [void] ifadesi, RemoveChild çıktısının konsola yazılmasını engeller.
  • Son satır, temizlenmiş içeriği orijinalin üzerine yazmadan yeni dosyaya kaydeder.

adım yeni sunucuda, yönetici yetkisiyle açılmış PowerShell penceresinde uygulanır. Import-DhcpServer çalışırken -BackupPath belirtilen dizine mevcut yapılandırmanın yedeğini DHCP Server servisi yazar. Servisin dizinde yazma yetkisi yoksa işlem erişim reddedildi hatasıyla sonlanabilir. nedenle import öncesinde klasörü oluşturup servis hesabına gerekli izni verin:

New-Item -Path "C:\backup\import_bkp" -ItemType Directory -Force icacls "C:\backup\import_bkp" /grant "NT SERVICE\DHCPServer:(OI)(CI)F" /T Temizlenmiş Dosyayı Import Etme Import-DhcpServer -ComputerName "YENI-DHCP" -File "C:\backup\dhcp_clean.xml" ` -BackupPath "C:\backup\import_bkp\" -Leases -Force

Parametrelerin rolü:

  • -ComputerName: İçe aktarmanın yapılacağı hedef sunucu.
  • -File: Temizlenmiş XML dosyası.
  • -BackupPath: Import öncesinde hedef sunucunun mevcut yapılandırmasının yedekleneceği dizin. Geri dönüş planınız için önemlidir.
  • -Leases: Aktif lease kayıtlarının taşınmasını sağlar.
  • -Force: Onay istemeden işlemi gerçekleştirir. nedenle yalnızca test ortamında doğruladığınız akışta kullanılmalıdır.
Dikkat Edilmesi Gereken Noktalar Şema Zorunlulukları

çözüm her ortamda tek seferde sonuç vermeyebilir. Bazı şemalar belirli alanları zorunlu tutabilir; durumda NAP/NPS düğümlerini kaldırdıktan sonra farklı doğrulama hatasıyla karşılaşabilirsiniz. Böyle durumda hata mesajını dikkatle okuyup hangi öğenin eksik veya geçersiz olduğunu belirlemek düzeltmeyi bilgiye göre yapmak gerekir.

Geniş Kapsamlı Filtre Riski

XPath ifadesi, adı Nap veya Nps başlayan her düğümü seçtiği için kapsamı geniştir. Standart DHCP export dosyasında önekle başlayan silinmemesi gereken düğüm beklenmez; yine temizlik sonrası dosyayı orijinaliyle karşılaştırıp hangi düğümlerin kaldırıldığını gözden geçirmek iyi pratiktir. Kaldırılan düğümleri önce listelemek isterseniz döngüden önce $nodes | Select-Object Name komutunu çalıştırabilirsiniz.

Test Ortamında Doğrulama

Üretim geçişinden önce import işlemini laboratuvar veya test sunucusunda denemek, hem şema uyumluluğunu hem scope, seçenek rezervasyon bilgilerinin doğru taşındığını görmenizi sağlar. adımı atlamak, planlı bakım penceresinde sürpriz hatalarla uğraşmak anlamına gelir.

Import Sonrası Kontrol Listesi

İçe aktarma başarıyla tamamlandığında geçişin bittiğini varsaymayın. Aşağıdaki adımları sırasıyla uygulayın:

  • Scope’ları doğrulayın. Get-DhcpServerv4Scope -ComputerName "YENI-DHCP" çıktısını eski sunucudakiyle karşılaştırın; adres aralıkları, alt ağ maskeleri durumlar eşleşmelidir.
  • Rezervasyonları lease sayılarını karşılaştırın. Özellikle sabit IP atanan yazıcı, sunucu ağ cihazlarının rezervasyonlarının eksiksiz taşındığından emin.
  • Yeni sunucuyu Active Directory’ yetkilendirin. Etki alanı ortamında DHCP sunucusu yetkilendirilmeden hizmet vermez: Add-DhcpServerInDC -DnsName "YENI-DHCP.alanadi.local"
  • Eski sunucudaki scope’ları devre dışı bırakın. Aynı scope’ların iki sunucuda aynı anda aktif olması IP çakışmalarına yol açabilir. Eski sunucuyu tamamen kaldırmadan önce süre devre dışı halde bekletmek, gerekirse hızlı geri dönüş imkânı sağlar.
  • Sonuç

    XML tabanlı export/import yöntemi, DHCP migrasyonunda hâlâ en güvenilir izlenebilir yaklaşımlardan biridir. Ancak yıllar içinde biriken eski protokol kalıntıları, yeni sunucu sürümlerinin şemalarıyla çakışabilir. NAP’ın kullanımdan kalkmış olması, alanların neden artık kabul edilmediğini açıklar.

    Teknik açıdan geçiş akışı sırayı izlemelidir: sunucudan alınan orijinal XML dosyası değiştirilmeden arşivlenir; Nap Nps önekli düğümler XPath sorgusuyla ayıklanarak hedef şemayla uyumlu ayrı kopya üretilir; kopya üretim geçişinden önce test ortamında Import-DhcpServer doğrulanır.

    Üretimde içe aktarma, -BackupPath hedef yapılandırma yedeklenerek gerçekleştirilir. İşlem sonrasında scope, rezervasyon lease tutarlılığı kontrol edilir, sunucu Active Directory’ yetkilendirilir sunucudaki scope’lar devre dışı bırakılır. yaklaşım, şema uyumsuzluğundan kaynaklanan import hatalarını ortadan kaldırırken IP çakışması veri kaybı riskini en aza indirir.

    sonraki teknik makalede görüşmek üzere.