Her sistem yöneticisinin kariyerinde bir gün gelir; kaldırılması gereken bir domain controller, sistemde tutunmak için elinden geleni yapar.
İşte benim hikâyem de tam olarak böyle başladı.
Şirketimizin Windows Server 2016 tabanlı eski domain controller’ı , yerini daha modern ve güvenli bir Windows Server 2022 sistemine bırakacaktı. Plan basitti: FSMO rolleri yeni sunucuya taşınacak, replikasyon sağlıklı çalıştığı doğrulandıktan sonra eski DC sorunsuzca sistemden kaldırılacaktı.
Ancak her şey planladığım kadar sorunsuz gitmedi.
Metadata cleanup işlemi yapıldı, NTDSUTIL komutları uygulandı, DNS kayıtları temizlendi. Ancak DCW2K16 inatla Active Directory üzerinde yaşamaya devam etti. Replikasyon tekrar tekrar eski sunucunun kalıntılarını geri getiriyor, silinen objeler adeta hortluyordu. ADSI Edit bile “bu objeyi silemezsiniz” diyordu. Sistem adeta geçmişine bağlı kalmakta ısrar ediyordu.
Bu noktada artık klasik yöntemler yetmiyordu. Daha derine inmek gerekiyordu.
Sistemin bu direnişi karşısında yapmam gereken belliydi: her DC üzerinde tek tek iz sürmek ve kalıntıları birer birer temizlemek. İlk olarak ntdsutil ile metadata cleanup işlemine tekrar giriş yaptım:
ntdsutil metadata cleanup connections connect to server mevcut ve çalışan DC adı; quit select operation target list domains select domain domain numarası list sites select site site numarası list servers in site select server silinecek DCW2K16 numarası quit remove selected server
Komut satırı her ne kadar “başarılı” dese de, ADSI Edit içinde CN=DCW2K16 nesnesi hâlâ görünüyordu. DNS konsolunda ise _msdcs altında hâlâ GUID referansları yerli yerindeydi. Sildim. Yeniden geldi. Bu, sistemle ciddi bir mücadeleydi.
Sonunda rotamı daha derin bir araca, ldp.exe‘ye çevirdim. LDAP seviyesinde doğrudan müdahale edebilmek için şu adımları izledim:
Contents of the Post
1. LDP.exe ile Zorla Domain Controller Silme
- Başlat > Çalıştır > ‘ldp.exe’ yazın ve Enter’a basın.
- Menüden Connection > Connect’e tıklayın.
– Sunucu: Mevcut çalışan bir DC’nin FQDN adresi (örn. dc2022.virtual.onur.com.tr)
– Port: 389
- Ardından Connection > Bind yolunu izleyin.
– ‘Bind as currently logged on user’ seçeneği işaretli kalsın > OK.
- View > Tree menüsünden ‘Base DN’ olarak şu adresi girin:
CN=Configuration,DC=virtual,DC=onur,DC=com,DC=tr
- Ağaç yapısından şu yolu takip edin:
CN=Sites > CN=Default-First-Site-Name > CN=Servers > CN=DCW2K16
- CN=DCW2K16 üzerine sağ tıklayın > Delete ile silin.
Not: Önce altındaki CN=NTDS Settings nesnesini silmeniz gerekebilir.
2. DNS Temizliği
- dnsmgmt.msc konsolunu açın.
- Forward Lookup Zones > virtual.onur.com.tr altında DCW2K16 için A/CNAME kayıtlarını silin.
- _msdcs.virtual.onur.com.tr altında GUID veya NS kayıtlarını kontrol edip silin.
3. Replikasyon Temizliği
Tabii ki işim burada bitmemişti. Her DC’nin güncel olduğundan emin olmak için komut satırında şu komutları çalıştırın.
öncelikle aşağıdaki komutla Active Directory replikasyonunu tetikledim.
repadmin /syncall /AdeP
sonra DCW2K16’nın hâlâ görünüp görünmediğini kontrol ettim.
repadmin /showrepl *
DNS yönetim konsolunda tüm A, NS, ve CNAME kayıtlarını da gözden geçirip temizledim. Artık her şey olması gerektiği gibiydi.
Sonuç: Dirençli Bir DC’ye Karşı Kazanılmış Bir Zafer
Bu sürecin sonunda sadece bir domain controller silmemiştim. aynı zamanda replikasyonun, DNS’in ve LDAP objelerinin nasıl iç içe çalıştığını yeniden görmüş oldum. Belki de bu inatçı DC sayesinde Active Directory’nin en derin katmanlarına kadar inmiş, sistemi çok daha iyi tanımıştım.
Bugün DCW2K16 yok. Ama bana bıraktığı bilgi ve deneyim hâlâ burada.
