System State Yedeği ve Domain Controller Geri Yükleme
Windows Server Backup ve wbadmin ile DC'nin System State yedeğini alıyor, DSRM'de non-authoritative ve ntdsutil ile authoritative restore adımlarını firma.local üzerinde uyguluyoruz.
Önceki yazıda AD Recycle Bin ile silinen nesneleri birkaç komutla geri getirdik. Ancak Recycle Bin her senaryoyu kurtarmaz: bozulmuş bir NTDS veritabanı, çöken bir Domain Controller ya da Recycle Bin açılmadan önce silinmiş bir OU için elinizde gerçek bir yedek olması gerekir. Bu yazıda DC01 üzerinde System State yedeği alacak, yedeği zamanlayacak ve hem non-authoritative hem de authoritative geri yüklemeyi adım adım uygulayacağız.
System State Yedeği Neleri Kapsar?
Bir Domain Controller'da System State yedeği şunları içerir:
- NTDS veritabanı:
C:\Windows\NTDS\ntds.ditve log dosyaları, yani Active Directory'nin kendisi. - SYSVOL: GPO'lar ve logon script'leri.
- Registry ve COM+ veritabanı: Sunucunun yapılandırması.
- Boot dosyaları ve sistem dosyaları: İşletim sisteminin açılması için gereken kritik dosyalar.
- AD ile entegre DNS zone'ları: Zone'lar AD içinde tutulduğu için yedeğe dahildir.
Önemli bir kural: yedek, tombstone lifetime süresinden eski olmamalıdır. Varsayılan değer 180 gündür ve bu süreden eski bir yedeği geri yüklerseniz silinmiş nesneler "hortlayabilir" (lingering objects). Domain'inizdeki değeri şöyle kontrol edin:
Get-ADObject "CN=Directory Service,CN=Windows NT,CN=Services,CN=Configuration,DC=firma,DC=local" `
-Properties tombstoneLifetime | Select-Object tombstoneLifetime
Değer boş dönerse domain eski bir sürümden yükseltilmiştir ve 60 gün kabul edilir.
Windows Server Backup Kurulumu
Windows Server Backup varsayılan olarak yüklü gelmez. DC01 üzerinde şu komutla ekleyin:
Install-WindowsFeature -Name Windows-Server-Backup -IncludeManagementTools
Yedek hedefi olarak sunucuya ayrı bir disk (örneğimizde E:) ekleyin. Varsayılan olarak System State yedeği, yedeklenen kritik birimlerden birine (örneğin C:) yazılamaz. Ağ paylaşımı da kullanabilirsiniz, ancak her yedek bir öncekinin üzerine yazılır.
İlk Yedeği Almak
Tek seferlik bir System State yedeği için yönetici olarak açılmış komut isteminde:
wbadmin start systemstatebackup -backupTarget:E: -quiet
İşlem sunucunun boyutuna göre 10-30 dakika sürebilir. Tamamlandığında mevcut yedekleri listeleyin:
wbadmin get versions -backupTarget:E:
Çıktıdaki Version identifier değerini not alın (örneğin 10/21/2026-20:00). Bu değer UTC saatindedir, yani Türkiye saatinden 3 saat geridir; geri yüklemede değeri çıktıdan olduğu gibi kopyalayın. Geri yükleme sırasında bu değeri kullanacaksınız. Yedeğin içinde neler olduğunu görmek için:
wbadmin get items -version:10/21/2026-20:00 -backupTarget:E:
Yedeği Zamanlamak
Elle alınan yedek unutulur. WindowsServerBackup PowerShell modülü ile her gece 02:00'de çalışan bir politika oluşturalım:
$policy = New-WBPolicy
Add-WBSystemState -Policy $policy
$disk = Get-WBDisk | Where-Object { $_.DiskNumber -eq 1 }
$target = New-WBBackupTarget -Disk $disk
Add-WBBackupTarget -Policy $policy -Target $target
Set-WBSchedule -Policy $policy -Schedule 02:00
Set-WBPolicy -Policy $policy -Force
Dikkat: New-WBBackupTarget -Disk ile verilen disk Windows Server Backup'a ayrılır ve biçimlendirilir; diskteki veriler silinir. Diski korumak istiyorsanız -VolumePath "E:" parametresini kullanın. Politikayı ve son yedeğin durumunu şöyle kontrol edebilirsiniz:
Get-WBPolicy
Get-WBSummary | Select-Object LastSuccessfulBackupTime, LastBackupResultHR, NumberOfVersions
Ortamınızda iki DC varsa en az birinin, tercihen ikisinin de yedeğini alın. Tek DC'li bir ortamda bu yedek, domain'inizin tek sigortasıdır.
DSRM Nedir?
Active Directory çalışırken NTDS veritabanının üzerine yazılamaz. Bu yüzden geri yükleme Directory Services Restore Mode (DSRM) içinde yapılır. DSRM'de AD hizmeti durur ve sunucuya domain hesabıyla değil, DC kurulumu sırasında belirlediğiniz DSRM parolası ile girersiniz.
Bu parolayı hatırlamıyorsanız, felaket anını beklemeden şimdi sıfırlayın:
ntdsutil "set dsrm password" "reset password on server null" quit quit
null yerel sunucuyu ifade eder. Komut yeni parolayı iki kez soracaktır. Parolayı parola kasanızda saklayın.
Sunucuyu DSRM'de başlatmak için:
bcdedit /set safeboot dsrepair
shutdown /r /t 0
Giriş ekranında kullanıcı adı olarak .\Administrator yazıp DSRM parolasını girin.
Non-Authoritative Restore
Bu yöntem, DC'yi yedekteki haline döndürür. Sunucu açıldıktan sonra diğer DC'lerden (örneğin DC02) yedekten sonra yapılan değişiklikleri replikasyonla alır. Bozulmuş bir veritabanını onarmak için idealdir, ancak silinmiş bir nesneyi geri getirmez; çünkü diğer DC'ler nesnenin silindiği bilgisini tekrar gönderir.
DSRM'deyken:
wbadmin get versions -backupTarget:E:
wbadmin start systemstaterecovery -version:10/21/2026-20:00 -backupTarget:E: -quiet
Geri yükleme bitince normal açılışa dönün:
bcdedit /deletevalue safeboot
shutdown /r /t 0
Ortamdaki tek DC'yi geri yüklüyorsanız SYSVOL'ün de yetkili olarak işaretlenmesi için komuta -authsysvol parametresini ekleyin.
Authoritative Restore
Yanlışlıkla silinen bir OU'yu ve Recycle Bin'iniz kapalıysa, nesneyi authoritative olarak işaretlemeniz gerekir. Bu işlem, seçilen nesnelerin sürüm numarasını yükseltir ve diğer DC'lerin bu nesneleri sizden almasını sağlar.
Adımlar şöyledir:
- Non-authoritative restore yapın: Yukarıdaki
wbadmin start systemstaterecoverykomutunu çalıştırın. - Yeniden başlatmayın: Sunucu hâlâ DSRM'deyken ntdsutil ile nesneyi işaretleyin.
- Normal moda dönün ve back-link'leri onarın: Grup üyelikleri için oluşan LDF dosyasını içe aktarın.
Silinen Muhasebe OU'sunu tüm içeriğiyle işaretlemek için:
ntdsutil
activate instance ntds
authoritative restore
restore subtree "OU=Muhasebe,OU=Kullanicilar,OU=Firma,DC=firma,DC=local"
quit
quit
Komut onay penceresi açar; Yes dedikten sonra ntdsutil işaretlenen nesne sayısını gösterir.
Tek bir kullanıcı için restore subtree yerine restore object kullanın:
ntdsutil
activate instance ntds
authoritative restore
restore object "CN=Ahmet Yilmaz,OU=Kullanicilar,OU=Firma,DC=firma,DC=local"
quit
quit
ntdsutil, çalıştığınız klasöre ar_YYYYMMDD-HHMMSS_objects.txt ve gerekirse ar_YYYYMMDD-HHMMSS_links_firma.local.ldf dosyalarını yazar. Sunucuyu normal modda açtıktan ve replikasyon tamamlandıktan sonra grup üyeliklerini geri yüklemek için LDF dosyasını içe aktarın:
ldifde -i -k -f ar_20261021-203512_links_firma.local.ldf
Son olarak nesnelerin diğer DC'ye ulaştığını doğrulayın:
repadmin /syncall DC01 /AdeP
Get-ADOrganizationalUnit -Identity "OU=Muhasebe,OU=Kullanicilar,OU=Firma,DC=firma,DC=local" -Server DC02
Sanal Makine Checkpoint'leri Yedek Değildir
Hyper-V veya VMware üzerinde çalışan DC'lerde checkpoint (snapshot) almak cazip gelebilir. Windows Server 2012 ve sonrası VM-GenerationID sayesinde checkpoint'e dönüşte USN rollback'i büyük ölçüde engeller, ancak checkpoint uygulama tutarlı bir AD yedeği değildir ve uzun süre saklanmamalıdır. Kurtarma planınızı mutlaka System State yedeği üzerine kurun.
Sık Karşılaşılan Hatalar
- Yedeği kritik birime almaya çalışmak:
wbadminhedef birimin yedeklenen birimlerden biri olduğunu söyleyip durur. Ayrı bir disk veya birim kullanın. - DSRM parolasını bilmemek: Felaket anında sunucuya giremezsiniz.
set dsrm passwordile parolayı önceden sıfırlayıp kasada saklayın. - Authoritative restore öncesi yeniden başlatmak: Sunucu normal açılırsa silme bilgisi replikasyonla gelir ve nesne yeniden silinir. ntdsutil adımını DSRM'den çıkmadan yapın.
- LDF dosyasını unutmak: Kullanıcılar geri gelir ama grup üyelikleri eksik kalır.
ldifde -i -k -file dosyayı içe aktarın. - Tombstone lifetime'dan eski yedek: Lingering object sorunlarına yol açar. Yedeklerinizi düzenli alın ve eski sürümleri temizleyin.
- `safeboot` değerini silmeyi unutmak: Sunucu her açılışta DSRM'e girer.
bcdedit /deletevalue safebootkomutunu çalıştırın.
Bir sonraki yazıda, şube ofisine bir RODC (Read-Only Domain Controller) kurup Password Replication Policy'yi yapılandıracağız.