1. Anasayfa
  2. Active Directory

Eski Domain Controller Sunucularının Kaldırılması


Active Directory altyapılarında zamanla roller değişir, sunucular eskir, yeni nesil sistemler göreve gelir. Ancak her zaman işler planlandığı gibi gitmeyebilir. Bu makalemde Windows Server 2016 tabanlı DCOLD2016 adlı domain controller’ın sistemden kaldırılması sürecinde yaşadığım zorlukları ve bu süreci nasıl başarıyla yönettiğimi tüm detaylarıyla paylaşıyorum.

İlk olarak belirteyim, planım oldukça basitti.

  • Yeni Windows Server 2022 DC kurulacaktı.
  • Tüm FSMO (Flexible Single Master Operations) rolleri bu yeni sunucuya aktarılacaktı.
  • Replikasyon doğrulandıktan sonra eski domain controller olan DCOLD2016 sistemden kaldırılacaktı.

FSMO rollerinin taşınması ve temel kontroller başarıyla tamamlandı. Ancak DCOLD2016 sistemden ayrılmaya pek istekli değildi.

ilk Belirti: Silinen Nesneler Tekrar Çıkıyor.

Geleneksel temizleme adımlarını uyguladım:

  • ntdsutil aracı ile metadata cleanup yaptım.
  • AD Sites and Services, ADUC ve DNS yönetim konsolu üzerinden DCOLD2016 ile ilgili objeleri temizledim.
  • ADSI Edit ile CN=DCOLD2016 nesnesini kontrol ettim ve silmeye çalıştım.

Ancak:

  • Silinen nesneler bir süre sonra replikasyon ile tekrar ortaya çıkıyordu.
  • ADSI Edit “bu nesne silinemez” uyarısı veriyordu.
  • DNS kayıtları her defasında yeniden oluşturuluyordu.

Bu noktada klasik metadata temizliği işleminin tek başına yeterli olmadığını fark ettim.

Metadata Cleanup İşlemini Derinleştirmek

Aşağıdaki ntdsutil komut dizisini kullanarak daha dikkatli bir metadata temizliği yaptım. Bu komutları çalıştırmadan önce domain admin yetkisine sahip olduğumdan ve oturumun çalışan bir DC üzerinde açıldığından emin oldum.

ntdsutil
metadata cleanup
connections
connect to server <aktif ve çalışan bir DC adı>
quit
select operation target
list domains
select domain <domain numarası>
list sites
select site <site numarası>
list servers in site
select server <DCOLD2016 numarası>
quit
remove selected server

Komut satırı başarılı mesajı verdi. Ancak ADSI Edit’e tekrar baktığımda CN=DCOLD2016 nesnesi hâlâ görünüyordu. Yani Active Directory veritabanında kalıntı veri hâlâ yaşamaktaydı. Bu durum replikasyon sırasında DCOLD2016’nın hala bir referans noktası olarak kabul edildiği anlamına geliyordu.

LDP.exe ile LDAP Düzeyinde Temizlik

Geleneksel araçlar artık yetmiyordu. Daha derin bir müdahale gerekiyordu. Bu noktada devreye ldp.exe girdi. LDAP protokolü seviyesinde doğrudan erişim sağlayarak sistemin alt katmanlarına ulaştım.

LDP.exe Kullanımı:

  1. Start -> Run -> ldp.exe yazarak aracı başlattım.
  2. Menüden Connection -> Connect seçeneğiyle çalışan bir DC’ye bağlandım:
    • Sunucu: DC01.contoso.local
    • Port: 389
  3. Connection -> Bind menüsünden oturum açmış kullanıcı olarak bağlandım.
  4. View -> Tree üzerinden Base DN girdim:
CN=Configuration,DC=contoso,DC=local

5. Ağaç yapısını takip ettim:

CN=Sites > CN=Default-First-Site-Name > CN=Servers > CN=DCOLD2016

6. Önce CN=NTDS Settings nesnesini sildim. Ardından CN=DCOLD2016 nesnesini sağ tıklayıp kalıcı olarak sildim. Bu yöntemle nesneyi Active Directory’nin yapılandırma bölümü (configuration partition) düzeyinden kaldırdım. Artık geri dönmesi mümkün değildir.

DNS Tarafında Kayıt Temizliği

LDAP objeleri silinse bile eğer DNS kayıtları temizlenmezse sistem DCOLD2016’yı halen tanıyor olabilir. Bu yüzden dnsmgmt.msc üzerinden kapsamlı bir temizlik yaptım:

DNS Adımları:

  1. Forward Lookup Zones > virtual.onur.com.tr
    • DCOLD2016’ya ait A ve CNAME kayıtlarını kaldırdım.
  2. _msdcs.virtual.onur.com.tr altında:
    • DCOLD2016’nın GUID’sine ait tüm NS ve A kayıtlarını sildim.
    • ForestDNSZones altında olası kalıntıları kontrol ettim.

Not: DNS temizliği sadece bölge kayıtlarını deği, aynı zamanda replikasyon partnerlerini etkileyen kayıtları da kapsar. Bu nedenle GUID tabanlı tüm referanslar silinmelidir.

Replikasyon: Son Kontrol ve Temizlik

Tüm silme işlemlerinden sonra her şeyin doğru çalıştığını test etmek için replikasyon durumunu kontrol ettim:

repadmin /syncall /AdeP
repadmin /showrepl *

Ardından aşağıdaki komutlarla global katalog replikasyon ilişkilerini de gözden geçirdim:

repadmin /replsummary
dcdiag /test:replications

Bu komutlar sayesinde hem anlık replikasyon durumu hem de potansiyel uyarılar detaylıca görülebilir. DCOLD2016 artık hiçbir replikasyon ilişkisinde görünmüyordu.