Kısa cevap: Active Directory ortamında zaman, hiyerarşik olarak dağılır: üye makineler ve istemciler kendilerine giriş yaptıkları DC’den, DC’ler de PDC emülatör rolünü taşıyan sunucudan zamanı alır. Bu hiyerarşinin tepesindeki PDC emülatörünü güvenilir bir dış NTP kaynağına eşitlemeniz yeterlidir; diğer makinelerde varsayılan ayarlar (NT5DS) genellikle olduğu gibi kalmalıdır. Aşağıda komut setini, GPO ile yapılandırmayı ve sık karşılaşılan sorunları anlatıyorum.

Güncelleme (Ekim 2026): Bu konuda çok fazla kaynak paylaştığım için yazıyı özet ve komut seti temelli hazırlamıştım. Komutlardaki bazı hataları düzelttim (tırnak işaretleri, eş listesi biçimi), NTP kaynaklarını güncelledim ve GPO, sanal ortam ile sorun giderme bölümlerini ekledim.

Zaman Senkronizasyonu Neden Önemli?

Active Directory’de kimlik doğrulama Kerberos ile yapılır. Kerberos, istemci ile DC arasındaki saat farkına karşı hassastır; varsayılan tolerans 5 dakikadır. Fark bu sınırı aşarsa kullanıcılar oturum açamaz, kaynaklara erişemez ve replikasyon hataları görülür. Kerberos’un nasıl çalıştığını Kerberos nedir yazımda anlattım.

PDC Emülatörünü Bulmak

PDC makinesinden emin değilseniz Komut İstemi’nde:

netdom query fsmo

veya PowerShell’de aşağıdaki komutlardan birini kullanarak PDC’yi tespit edebilirsiniz:

[System.DirectoryServices.ActiveDirectory.Forest]::GetCurrentForest().RootDomain.PdcRoleOwner.Name
(Get-ADDomain).PDCEmulator

Ya da şu komutu kullanabilirsiniz:

dsquery server -hasfsmo pdc

Not: Birden fazla domain içeren bir forest’ta zaman hiyerarşisinin tepesi, forest kök domain’inin PDC emülatörüdür. Yukarıdaki ilk komut tam olarak onu verir. Diğer domain’lerin PDC’leri zamanı kök domain’den alır; dış kaynağı yalnızca kök PDC’ye tanımlayın.

PDC’yi Dış Bir NTP Kaynağına Eşitlemek

PDC’yi bulduktan sonra bu makineye logon oluyoruz. Komut satırını yönetici yetkisiyle açıp aşağıdaki komutu çalıştırıyoruz. Bu komutla PDC’yi dış bir kaynaktan (Windows, TÜBİTAK, ntp.org vb.) zaman bilgisini alacak şekilde ayarlayabilirsiniz:

w32tm /config /manualpeerlist:"0.tr.pool.ntp.org,0x8 1.tr.pool.ntp.org,0x8 2.tr.pool.ntp.org,0x8 3.tr.pool.ntp.org,0x8" /syncfromflags:manual /reliable:yes /update

Komuttaki üç noktaya dikkat edin:

  • Tırnak işaretleri düz olmalı. Web sayfalarından kopyaladığınız kıvrık tırnaklar (“ ”) komutun çalışmamasına neden olur. Önceki sürümde bu hata vardı.
  • Sunucular boşlukla ayrılır. Virgül, sunucudan sonra gelen bayrağı (,0x8) ayırmak içindir.
  • 0x8 bayrağı sunucuyu istemci modunda kullanmak demektir. Bayrakların anlamlarını yazının sonunda açıkladım.

Türkiye için tr.pool.ntp.org havuzunu kullandım (önceki sürümde us.pool.ntp.org vardı). time.windows.com veya time.cloudflare.com gibi sunucuları da kullanabilirsiniz. Google’ın time.google.com sunucuları artık saniyeyi (leap second) bir anda değil kademeli olarak (leap smear) uygular; bu yüzden onları diğer kaynaklarla aynı listede karıştırmayın.

Daha sonra servisi yeniden başlatıyoruz:

Restart-Service w32time
w32tm /resync /rediscover

PDC’nin dışarıya UDP 123 portundan erişebildiğinden emin olun; firewall bu portu engelliyorsa zaman eşitlenmez.

Kontrol Komutları

Zaman bilgisini anlık olarak güncellemek için:

w32tm /resync /nowait

NTP ayarlarını kontrol etmek için:

w32tm /query /configuration

Zaman kaynağını görüntülemek için:

w32tm /query /source

Ayarladığınız tüm NTP sunucularının durumunu göstermek için:

w32tm /query /peers

Zaman sunucusunun durumunu görmek için. Örneğin kaynağın “Local CMOS Clock” (yerel saat) mi yoksa dış bir time server mı olduğunu bu çıktıdan anlarsınız:

w32tm /query /status

Başka bir makineyle aranızdaki saat farkını ölçmek için:

w32tm /stripchart /computer:DC02 /samples:5 /dataonly

Diğer DC’ler, Sunucular ve İstemciler

PDC tarafındaki işlemlerimiz bitti. Diğer DC’ler, sunucular ve istemciler için varsayılanda ek bir şey yapmaya gerek yoktur; zamanı domain hiyerarşisinden alırlar. Ancak özellikle PDC dışındaki DC’leri kontrol etmekte fayda var:

w32tm /config /update /syncfromflags:DOMHIER
w32tm /resync /rediscover

Ardından servisi yeniden başlatın:

net stop w32time
net start w32time

Time Server Ayarlarını Varsayılana Döndürmek

net stop w32time
w32tm /unregister
w32tm /register
net start w32time

Bu işlem zaman servisi yapılandırmasını sıfırlar. PDC üzerinde yaparsanız dış NTP ayarını yeniden tanımlamanız gerekir.

Kayıt Defterinden Kontrol (31.05.2020 Eklemesi)

Bir ADC (ek domain controller) makinede kayıt defterinden kontrol ettiğinizde aşağıdaki gibi bir ayar görebilirsiniz:

Kayıt defterinde W32Time Parameters altında Type ve NtpServer değerleri

Zaman kaynağı time.windows.com gibi görünse de önemli olan Type değeridir. NT5DS yazması, makinenin zaman bilgisini domain yapısından aldığını, yani varsayılan ayar olan PDC’den zamanı çektiğini gösterir. NtpServer alanındaki değer bu durumda kullanılmaz.

GPO ile Yapılandırma

Zaman ayarlarını GPO ile yönetmek isterseniz şu yolu izleyin:

Computer Configuration > Policies > Administrative Templates > System > Windows Time Service > Time Providers

Enable Windows NTP Client seçeneğini etkinleştiriyoruz. Configure Windows NTP Client için örnek ayarlar aşağıdaki gibidir:

Configure Windows NTP Client ilkesi örnek ayarları

Önemli: Dış NTP kaynağını tanımlayan GPO’yu domain’deki tüm makinelere uygulamayın; hiyerarşi bozulur ve her makine kendi başına dışarıya çıkmaya çalışır. GPO’yu yalnızca PDC emülatörüne uygulamak için bir WMI filtresi kullanın: SELECT * FROM Win32_ComputerSystem WHERE DomainRole = 5. DomainRole = 5, makinenin PDC emülatör rolünü taşıdığını gösterir. Böylece rol başka bir DC’ye taşındığında ayar da onunla birlikte taşınır. Diğer makinelerde Type değeri NT5DS olarak kalmalıdır.

Time server sonrasında eklenen 0x1, 0x9 gibi değerlerin açıklamalarını merak ediyorsanız aşağıdaki bağlantıya bakabilirsiniz:

Configuring the Time Service: NtpServer and SpecialPollInterval

İstemciler Hala Zaman Eşitlemiyorsa

Tüm bunları yapmanıza rağmen istemciler zaman eşitlemiyorsa şunları kontrol edin:

  • dcdiag /test:advertising çıktısında şu uyarıyı görebilirsiniz: Warning: is not advertising as a time server. Bu, DC’nin zaman sunucusu olarak kendini duyurmadığı anlamına gelir. Önce w32tm /query /status ile makinenin güvenilir bir kaynağa eşitlenip eşitlenmediğine bakın.
  • In-place upgrade yapılmış sunucu veya istemciler: Windows zaman servisi ayarları in-place upgrade sırasında korunmayabilir. Ayrıntılar için Microsoft’un KB3201265 makalesine bakın.
  • Sanal ortamlar: Sanal bir PDC’de hypervisor zaman eşitlemesi (Hyper-V Time Synchronization veya VMware Tools) ile NTP çakışabilir. PDC üzerinde bunlardan birini seçin, diğerini devre dışı bırakın.
  • Firewall: PDC’den dış NTP kaynaklarına UDP 123 erişimi açık mı?
  • Olay günlüğü: Event Viewer’da System günlüğündeki Time-Service kayıtlarına bakın.

Ek Bilgi: NtpServer Bayrakları ve EventLogFlags

NtpServer isminden sonra gelen bayrak (flag) parametresi sunucu için bir tanımlama içerir. 0x01, 0x02, 0x04 ve 0x08 olarak görebilirsiniz:

  • 0x01 = SpecialInterval (önceden tanımlı bir aralık kullanılır)
  • 0x02 = UseAsFallbackOnly (önce diğer sunucular denenir)
  • 0x04 = SymmetricActive
  • 0x08 = Client

Makalemdeki 0x09 ne demek? Bu, 0x08 + 0x01’dir; yani sunucu için iki özelliğin aktif olması demektir.

Ek olarak EventLogFlags adlı bir değişken daha vardır. Değerleri şöyledir:

  • 0 = Devre dışı
  • 1 = Zaman sıçraması algılandığında kaydet
  • 2 = Zaman kaynağı değiştiğinde kaydet
  • 3 = 1 + 2 (hem zaman sıçramalarını hem kaynak değişikliklerini kaydet)
Published On: 29 Haziran 2017 / Categories: Active Directory / 6,6 min read /

Bilgiyi Paylaşın!