Yeni bir time zone güncelleme macerasından herkese merhaba :)
Türkiye an itibarıyla UTC+2 zaman diliminde yer alır ve GMT+2 de aynı şeyi ifade eder. UTC (Coordinated Universal Time) ile GMT (Greenwich Mean Time) arasında teknik olarak çok küçük zaman farkları vardır ama bu farklar gündelik kullanımı etkilemez. Microsoft dünyası için yaygın olan zaman standardı UTC’dir. Diğer taraftan zaman yönetiminde UTC Time, Time Zone, DST ve Local Time gibi kavramlar da vardır ki basitçe şöyle açıklanabilir:
- UTC Time: Başlangıç saati
- Time Zone: Yer alınan boylama göre UTC zamanı üzerine eklenen veya çıkartılan saat farkı; +2, -3, vb.
- DST: Gün ışığından yararlanmak adına +1 saat zaman ilavesi.
- Local Time: UTC +- Time Zone + DST (eğer periyot içerisindeyse)
Windows OS’ler time bilgisini şöyle operate eder: Öncelikle bir NTP üzerinden (veya CMOS gibi bir kaynaktan) salt UTC Time bilgisini alır. Windows’un Date and Time ayarlarında seçili Time Zone‘a göre UTC Time bilgisi üzerinde + veya – kaç saat değişiklik uygulanması gerektiğine karar verir. Ayrıca seçili Time Zone eğer DST periyodu içerisindeyse +1 saat daha ilave eder ve bunun sonucunda o ülkeye özgü Local Time‘ı (yerel saat) hesaplar.
DC’ler ve AD Domain üyesi Windows’lar arasındaki etki alanı seviyesinde gerçekleşen kimlik doğrulama işlemleri UTC olarak operate edilir. Bu yüzden Local Time’dan etkilenmezler.
UTC+2 zaman dilimi içerisinde gün ışığından daha fazla yararlanmak amacıyla her yıl Mart ayının son Pazar günü tüm yurtta saatler yeniden düzenlenir ve gece 03:00’ten itibaren 1 saat ileri alınmak suretiyle yaz saati uygulaması (Daylight Saving Time – DST) başlamış olur. Tam 7 ay süren yaz saati döneminden çıkıp yeniden standart saate geri dönüş ise (kış saati olarak da bilinir) yine aynı yıl içerisinde Ekim ayının son Pazar günü 04:00’te saatlerin 1 saat geri alınması ile gerçekleşir. Ancak bu konuda bir değişiklik söz konusu ve geçen ay yayımlanan bakanlar kurulu kararı ile yaz saati & kış saati uygulamalarının yürürlükten kaldırıldığı ve bundan böyle sürekli yaz saati içerisinde kalacağımız resmen duyuruldu. Bir diğer ifadeyle 30 Ekim’den sonra UTC+3 zaman diliminde yer alacağız ve bundan sonra DST aktif olmayacak; artık hep yaz saati…
Bu kalıcı değişiklik iyi mi yoksa kötü mü oldu tartışılır ama seçim, sınav gibi belirli nedenlerden ötürü gerçekleşen ertelemelerde sistem yöneticilerinin (ve beraberinde birçok sektörün) yaşadığı uyumsuzluk sorunları gayet ortada. Örneğin geçen yıl genel seçimler nedeniyle 1 hafta ertelenen yaz saatinden çıkış, kış saatine giriş dönemini hatırlamayanınız var mı? Özellikle Microsoft sistem yöneticileri için baya zorlu geçtiğini biliyorum çünkü -Windows 10 hariç- desteklenen tüm sürümler için söz konusu değişikliği uygulayan güncelleme paketleri maalesef Automatic Update, WSUS gibi dağıtım kanalları üzerinde yer almadı. Söz konusu güncellemeler sadece standalone paketler şeklinde yayınlandı ve bunları da hazır bir deployment çözümüne import etmek hiç de kolay olmadı. O dönem şurada yayınladığım yönergeler 20.000+ kez ziyaret edildi, otomatik yükleme aracı 10.000+ kez indirildi, konuyla ilgili onlarca e-posta ve yorum bırakıldı. Belki zor oldu ama o dönem bir şekilde çözüme ulaştık diye düşünüyorum.
30 Ekim 2016 Öncesi Windows Time Zone Güncellemesi
Gelelim yeni maceramızın detaylarına. Ülkede bundan sonra hep yaz saati olacağı için 30 Ekim 2016 Pazar gecesi 04:00 geldiğinde, sistem saatlerin 1 saat geri alınmaması ve olduğu haliyle (yani yaz saati uygulamasının içerisinde) devam edilmesi gerekiyor. Ama sorun şu ki bu haliyle tüm Windows’lar 30 Ekim 2016 Pazar gecesi 04:00’da yerel saatlerini 1 saat geri almak üzere ayarlı durumdalar. Çünkü önceden programlı ve beklenen davranış bu şekilde.
Akla ilk gelen aşağıdaki yöntemler çözüm olur mu?
- 30 Ekim tarihi geldiğinde Windows üzerindeki gün ışığından yararlanma (DST) ayarını kapatmanız fayda etmez çünkü teknik olarak o tarihten sonra DST periyodunun dışına çıkılmış olacağı için DST ayarı -bir sonraki DST dönemine kadar- sistemde görünen yerel saat yani local time üzerinde etkisizdir. Bu yüzden çözüm olamaz.
- 30 Ekim’den önce (UTC+02:00) Istanbul olan time zone’u değiştirip örneğin +3 diliminde yer alan ve DST aktif olmayan yeni bir time zone’a almak kısmen çözüm olabilir ancak bu time zone değişikliğinin 30 Ekim Pazar günü gece 04:00’ten önce tüm sistemlere uygulanması gerekiyor. Uyguladıktan sonra ise ayarlarda (UTC+03:00) Baghdad veya (UTC+03:00) Minsk gibi başka bir ülkenin time zone’u seçili görünüyor olacak. Ayrıca bu senaryoda Time Zone -yani aslında Standard Name- değişeceği için özellikle Outlook takvim hatırlatıcıları ve zamanlanmış Windows görevleri gibi önceden ayarlanmış işlerde sorunlar yaşanacak ve yeniden düzenlenmeleri gerekecek. Böyle bir tercih yapmak ister misiniz bilmiyorum ama bence bu seçeneği de kalıcı bir çözüm olarak düşünmemek lazım.
Aslında çözüm oldukça basit: Üreticinin (UTC+02:00) Istanbul time zone olarak çalışan tüm Windows’larda DST davranışını değiştirmek ve hatta kalıcı olarak cancel etmek için içerisinde DST olmayan UTC+3 diliminde yeni bir time zone oluşturması ve bunu sistemde aktif eden bir güncelleme hazırlayıp 30 Ekim 2016 saat 04:00’ten önce yaygınlaştırması gerekiyor. Neyse ki bu sefer işimiz daha kolay çünkü söz konusu güncelleme Ekim ayı ortasında hazır olacak ve daha güzeli ise bu sefer tüm güncelleme paketleri Rollup, Cumulative Update, WSUS, Catalog gibi çeşitli dağıtım kanalları üzerinden de paylaşılacak.
Görünen o ki Microsoft’un hazırlıkları şu yönde:
- Desteklenen tüm Windows sürümlerinde (UTC+02:00) Istanbul time zone’u (UTC+03:00) Istanbul şeklinde değiştirecek ve DST’yi de kalıcı olarak cancel edecek bir güncelleme hazırlanıyor ve Ekim 2016 ortasında yayında olacak.
- Bu seferki güncelleme paketleri Rollup, Cumulative Update, WSUS, Catalog gibi dağıtım kanalları ile de gönderilecek, SCCM’e de import edilebilecek.
- Windows 8.1, Windows Server 2012 R2 ve alt sürüm işletim sistemleri için Ekim 2016’da yayınlanacak güncelleme ile düzeltilecek. Bu sürümler için aylık Rollup yayını Ekim 2016’da başlıyordu. Tesadüfen ilk rollup içerisine bu güncelleme de girmiş oldu
.
- Windows 10 ve Windows Server 2016 için Ekim ayında yayınlanacak son Cumulative Update içerisinde yer alacak.
- Güncellemeler WSUS ve Microsoft Catalog üzerinde yer alacak.
- Windows 10 ve Windows Server 2016 dışındaki sürümler için standalone güncelleme paketleri yayınlanacak.
- SCCM gibi dağıtım araçlarına import edip yüklemek mümkün olacak.
- Windows 8.1, Windows Server 2012 R2 ve alt sürüm işletim sistemleri için Ekim 2016’da yayınlanacak güncelleme ile düzeltilecek. Bu sürümler için aylık Rollup yayını Ekim 2016’da başlıyordu. Tesadüfen ilk rollup içerisine bu güncelleme de girmiş oldu
- Standalone paketler ile yapılan güncellemeler sonrasında sistemlerin yeniden başlatılması (restart) gerekmeyecek. Ama Rollup veya Cumulative Update gibi seçeneklerle yapılan güncellemelerden sonra ve her ne kadar DST için gerekmese de içeriğindeki diğer güncellemeler yüzünden sistemlerin yeniden başlatılması (restart) gerekecektir.
Muhtemelen önümüzdeki hafta içerisinde ilk güncelleme paketleri yayınlanmış olur. Eğer her şey bu düzende ilerler ise, yukarıda bahsettiğim yöntemlerle Windows’ları güncellemek yeterli olacak.
Otomatik Güncelleme İle Çözüm
Eğer sağlanan toplu güncelleme paketlerini Windows Update, WSUS veya benzeri otomatik dağıtım kanalları üzerinden yükleyerek ilerlemek isterseniz, ilgili sürümler için yüklenmesi gereken paketler aşağıdaki gibidir.
Desteklenen işletim sistemleri için üreticinin yayınlayacağı resmi ve uyumlu güncelleme paketleri dururken, sağda solda bulduğunuz ve gördüğüm kadarıyla pattern’leri uyumsuz registry dosyalarının import edilmesi gibi gereksiz işlere kalkışmak hiç de akıllıca olmaz. Yani o iş Windows 10’dan alınan registry export’u XP’ye import etmekle olmuyor maalesef.
Bu gibi konularda profesyonel yaklaşım şudur: Eğer ilgili yazılım için üretici resmi bir güncelleme yayınlıyor ise mutlaka ilk tercih bu yönde olmalı. Eğer ortada bir güncelleme yok ise, işte o zaman başının çaresine bakmalısın. Bu yüzden Windows 8 ve XP’ler için registry import tamam (tabii o da doğru verileri oluşturabiliyorsa). Ama Windows Vista ve üzeri desteklenen işletim sistemleri için mutlaka üreticinin yayınlayacağı güncelleme paketleri tercih edilmeli. Naçizane önerimdir.
Windows 10 & Windows Server 2016
1) Automatic Update ve WSUS üzerinde görünen güvenlik sınıfındaki toplu güncelleme paketlerinin ismi aşağıdaki gibi.
Windows 10 build 10240 (RTM)
- Cumulative Update for Windows 10 (KB3192440) (Windows 10 32-bit)
- Cumulative Update for Windows 10 for x64-based Systems (KB3192440) (Windows 10 64-bit)
Windows 10 build 1511 (Kasım 2015 güncellemesi – Threshold 2)
- Cumulative Update for Windows 10 Version 1511 (KB3192441) (Windows 10 32-bit)
- Cumulative Update for Windows 10 Version 1511 for x64-based Systems (KB3192441) (Windows 10 64-bit)
Windows 10 build 1607 & Windows Server 2016 RTM
- Cumulative Update for Windows 10 Version 1607 (KB3194798) (Windows 10 32-bit)
- Cumulative Update for Windows 10 Version 1607 for x64-based Systems (KB3194798) (Windows 10 64-bit)
- Cumulative Update for Windows Server 2016 for x64-based Systems (KB3194798) (Windows Server 2016)
Bunlar birer Cumulative Update paketi olduğu için içerisinde yayınlandıkları aya (ve duruma göre geçmiş aylara) ait diğer güncellemeler de yer alır. Windows Update üzerinden kontrol ettiğinizde ve eğer geçmiş CU paketleri sisteminizde yüklü değil ise, yüklenecek paketin boyutu örneğin 64-bit sistemler için 1GB’a kadar ulaşabilir. Eğer geçmiş CU paketleri sistemde yüklü ise, yüklenecek son paketin boyutu sadece son güncellemeleri içereceği için çok daha küçük olacaktır. Tüm CU paketlerinde olduğu gibi yükleme sonrası restart gerekir.
2) Eğer bu Cumulative Update paketlerini Automatic Update üzerinden değil de manuel indirip yüklemek isterseniz bağlantıları aşağıdaki gibi.
- Windows 10 Build 1607, Windows Server 2016 RTM – Microsoft Update Catalog
- Windows 10 Build 1511 – Microsoft Update Catalog
- Windows 10 Build 10240 RTM – Microsoft Update Catalog
Microsoft Update Catalog’dan indirilen Cumulative Update paketleri, geçmiş aylarda yayınlanan güncellemeleri de içerdiği için boyutları genelde yüksektir. Tüm CU paketlerinde olduğu gibi yükleme sonrası restart gerekir.
3) Windows 10 ve Windows Server 2016 sürümleri için standalone güncelleme paketi yayınlanmayacak. Bu yüzden tek seçenek CU yüklemek.
4) Windows build numarasını öğrenmek için PowerShell aracında
(gwmi Win32_OperatingSystem).Version komutunu çalıştırabilirsiniz.
Windows 8.1 & Windows Server 2012 R2
1) Automatic Update ve WSUS üzerinde görünen ve içerisinde farklı düzeltmelerin de yer aldığı 18 Ekim tarihli toplu güncelleme paketlerinin -yani rollup’ların- isimleri aşağıdaki gibi. Yükleme sonrası restart gerekir.
- October, 2016 Preview of Monthly Quality Rollup for Windows Server 2012 R2 (KB3192404)
- October, 2016 Preview of Monthly Quality Rollup for Windows 8.1 for x64-based Systems (KB3192404)
- October, 2016 Preview of Monthly Quality Rollup for Windows 8.1 (KB3192404)
2) Eğer rollup değil de sadece DST güncellemesini içeren standalone paketleri yüklemek isterseniz yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilir veya paketlerin indirilebilir hallerine aşağıdaki bağlantıyı kullanarak Catalog üzerinden ulaşabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Windows Server 2012
1) Automatic Update ve WSUS üzerinde görünen ve içerisinde farklı düzeltmelerin de yer aldığı 18 Ekim tarihli toplu güncelleme paketlerinin -yani rollup’ların- isimleri aşağıdaki gibi. Yükleme sonrası restart gerekir.
2) Eğer rollup değil de sadece DST güncellemesini içeren standalone paketleri yüklemek isterseniz yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilir veya paketlerin indirilebilir hallerine aşağıdaki bağlantıyı kullanarak Catalog üzerinden ulaşabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Windows Server 2012 için yayınlanan standalone güncelleme paketi bazen Searching for updates on this computer… aşamasında takılı kalıyor ve bu aşamadan çıkıp kuruluma geçemiyor. Bu durum için yazının sonunda yer alan Bilinen Sorunlar ve Çözümler bölümüne bakın.
Windows 8 (yani 8.1 olmayan sürüm)
- Desteklenen bir sürüm olmadığı için üretici tarafından herhangi bir güncelleme paketi yayınlanmayacak. Yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Windows 7 & Windows Server 2008 R2
1) Automatic Update ve WSUS üzerinde görünen ve içerisinde farklı düzeltmelerin de yer aldığı 18 Ekim tarihli toplu güncelleme paketlerinin -yani rollup’ların- isimleri aşağıdaki gibi. Yükleme sonrası restart gerekir.
- October, 2016 Preview of Monthly Quality Rollup for Windows Server 2008 R2 (KB3192403)
- October, 2016 Preview of Monthly Quality Rollup for Windows 7 for x64-based Systems (KB3192403)
- October, 2016 Preview of Monthly Quality Rollup for Windows 7 (KB3192403)
2) Eğer rollup değil de sadece DST güncellemesini içeren standalone paketleri yüklemek isterseniz yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilir veya paketlerin indirilebilir hallerine aşağıdaki bağlantıyı kullanarak Catalog üzerinden ulaşabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Windows Vista & Windows Server 2008
1) Bu sürüm için Update Rollup yayını yok, sadece standalone paketler var. Bu standalone paketleri yüklemek için yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilir, WSUS veya Automaic Update üzerinde “optional update” bölümünden çekebilir veya paketlerin indirilebilir hallerine aşağıdaki bağlantıyı kullanarak Catalog üzerinden ulaşabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Windows XP & Windows Server 2003
- Desteklenen bir sürüm olmadığı için üretici tarafından herhangi bir güncelleme paketi yayınlanmayacak. Yazının ilerleyen bölümlerinde yer alan TR3-TimeZone.ps1 isimli yardımcı script’in 2.0 sürümünü kullanabilirsiniz. Yükleme sonrası restart gerekmez ancak çalışan uygulamalara göre değişmekle birlikte bazı uygulamaların ayarları anlayabilmesi için servis restart gerekebilir.
Yükleme ve Kontrol Script’i İle Çözüm
Ben yine de geçen sefer olduğu gibi otomatik yükleme ve sonrasında uygulanan ayarların kontrolü için bir script hazırladım. Bu script’i aşağıdaki amaçlar için kullanabilirsiniz.
- Bir bilgisayar listesi vererek standalone güncelleme paketlerini uzaktan, otomatik bir şekilde ve toplu olarak yükleyebilirsiniz.
- Rollup, Script, Cumulative Update, WSUS, SCCM gibi çeşitli yöntemlerle yapılan güncelleme paketi yüklemeleri sonrasında doğru ayarların gerçekten aktif olup olmadığını kontrol edip bir Excel dosyasına raporlayabilirsiniz.
- Resmi olarak desteklenmediğinden üreticinin güncelleme yayınlamayacağı Windows 8 (yani 8.1 olmayan), Windows XP ve Windows Server 2003’ler için (GMT+03:00) Istanbul isimli ve DST aktif olmayan yeni bir Time Zone’u, uyumlu bir pattern ile cretae edebilirsiniz.
Script Hakkında Önemli Bilgiler
- Script, desteklenen işletim sistemleri için Microsoft’un hazırladığı doğru güncellemeleri yüklemek ve ardından ayarları raporlamak üzere tasarlanmıştır. Desteği sonlanmış Windows 8 (8.1 olmayan), Windows XP ve Server 2003 işletim sistemleri için ise resmi olmayan ama uyumlu bir registry ayar grubu uygular ve arkasından yine raporlar.
- Desteklenen işletim sistemleri için standalone güncelleme paketleri script dosyası ile birlikte gelir, bu yüzden ayrıca indirmenize gerek yoktur.
- Sadece UTC/GMT+03:00 Istanbul time zone güncellemesi için optimize edilmiştir.
- Script PowerShell tabanlıdır ve bazı işler için PsExec.exe yardımcı aracını kullanır.
- Script, Windows 10 ve Windows Server 2016 sürümleri için herhangi bir güncelleme paketi yüklemesi yapmaz çünkü üretici bu sürümler için standalone güncelleme paketi yayınlamayacak. Tek seçenek olan ve yaklaşık 700mb boyutlu bir CU paketini ağdan kopyalayarak dağıtmak pek mantıklı olmadığı için de script’e eklemedim. Script, bu sürümler için sadece raporlama yapar. CU paketini Windows Update veya WSUS üzerinden yükleyebilirsiniz.
- Script, Microsoft tarafından desteklenen diğer Windows sürümleri için yüklemesi gereken güncelleme paketini otomatik olarak tespit eder, gerekli ise uzak bilgisayara kopyalayıp yükler, güncel Time Zone bilgilerini alır ve tüm bu işlemleri CSV dosyasında raporlar.
- Script, Windows 8, Windows XP, Windows Server 2003 için doğru registry ayarlarını uygulayan ve yine benim hazırladığım
xptz.batveya
w8tz.batisimli dosyalardan uygun olanı çalıştırıp (GMT+03:00 Istanbul) isimli time zone’u uyumlu bir pattern ile create eder, güncel Time Zone bilgilerini alır ve tüm bu işlemleri CSV dosyasında raporlar.
- Eğer yükleme öncesinde uzak bilgisayar üzerinde Turkey Standard Time (yani UTC+2 Istanbul) seçili değil ise, yükleme sonrasında o bilgisayar üzerinde (UTC+03:00) Istanbul isimli time zone otomatik olarak seçilmez çünkü bu durumdaki bilgisayarlar için özellikle başka bir time zone kullanmak istediğiniz varsayılır ve ayarları bozmamak için script ya da hotfix’ler tarafından müdahale edilmez; yeni time zone oluşturulur ve sadece raporlanır.
Windows XP ve Windows Server 2003’ler için
xptz.bat isimli dosyayı, Windows 8’ler (8.1 olmayan) için ise
w8tz.bat isimli dosyayı örneğin bir GPO ile startup script olarak AD ortamına dağıtarak da ayarların uygulanmasını sağlayabilirsiniz. Diğer işletim sistemleri için registry veya bat gibi çözümler uygulamayın çünkü resmi güncelleme paketleri yayınlanmış durumda.
- Eğer uzak bilgisayar üzerine güncelleme daha önce yüklenmiş veya herhangi bir yöntemle yeni time zone oluşturulmuş ise bunu anlar ve o bilgisayar üzerinde herhangi bir işlem yapmadan sadece güncel ayarları alıp raporlar.
- Daima son sürümü kullanın ve hatta 30 Ekim öncesi belirli aralıklarla aşağıdaki “Sürüm Geçmişi” bölümünü takip ederek önemli bir güncelleme olup olmadığını kontrol edin. Örneğin 1.0 sürümünü çalıştırdıysanız ve üzerine 1.1 veya 2.0 yayınlanmış ise, yeni sürümü aynı bilgisayar listesi için tekrar çalıştırabilirsiniz.
- Script’in yeni sürümünü (hatta aynı sürümü bile), daha önce çalıştırdığınız bilgisayar listesi için yeniden, tekrar tekrar çalıştırmakta sakınca yoktur. Bu durumda script, eğer bir düzeltme yapılması gerekiyor ise yapar, eğer ayarlar doğru veya güncellemeler zaten yüklü ise o bilgisayar için herhangi bir müdahalede bulunmaz, sadece mevcut ayarları raporlar ve diğer bilgisayarlara geçer.
- Örneğin ortamınızda 600 bilgisayar yer alıyor. Script’i 3 farklı sunucuya kopyalayıp listeyi de 3’e bölerek yükleme ve kontrol işlemlerini çok daha kısa sürelerde tamamlayabilirsiniz.
- Yükleme sonrası oluşan
Sonuc_[tarih-saat].csvisimli rapor dosyası önemlidir. İçerisinde tüm operasyon kaydını görebilirsiniz. Açıklamaları ise aşağıda yer alıyor.
Ön Gereksinimler
Script’in işlem yapacağı uzak bilgisayarlar üzerinde aşağıdaki gereksinimlerin sağlanmış olması gerekir. AD Domain ortamında eğer özellikle bir müdahalede bulunmadıysanız bu gereksinimlerin neredeyse tamamı sağlanmış durumdadır.
- Script’i bir Windows Server 2012 R2 üzerinde çalıştırın. Bu önemli bir gereksinim çünkü bazı parametreler sadece bu sürüm üzerinde yer alır.
- İndirdiğiniz script dosyası (ve dizini) içerisinde herhangi bir değişiklik yapmayın.
- Script’i çalıştırdığınız kullanıcı hesabı, uzak bilgisayarlar üzerinde en az local administrator yetkisinde olmalıdır.
- Uzak bilgisayarlar üzerinde
admin$paylaşımı açık, ve script’i çalıştıran kullanıcı/sunucu tarafından ulaşılabiliyor ve yazabiliyor olmalıdır. (Güvenlik duvarı ve anti-virus’lere dikkat)
- Basitçe, script’i çalıştırdığınız sunucu üzerinden, üzerinde işlem yapılacak uzak bilgisayara şu şekilde erişebiliyor ve yazabiliyor olmalısınız:
\\PC5\admin$
- Basitçe, script’i çalıştırdığınız sunucu üzerinden, üzerinde işlem yapılacak uzak bilgisayara şu şekilde erişebiliyor ve yazabiliyor olmalısınız:
- Script bazı işler için
Get-WmiObjectve
Get-HotFixisimli PowerShell cmdlet’lerini -Computer parametresi ile kullanır. (Güvenlik duvarı ve anti-virus’lere dikkat)
- Basitçe, script’i çalıştırdığınız sunucu üzerinden PowerShell ile, üzerinde işlem yapılacak uzak bilgisayara şu şekilde erişebiliyor olmalısınız:
Get-HotFix -Computer PC5
- Basitçe, script’i çalıştırdığınız sunucu üzerinden PowerShell ile, üzerinde işlem yapılacak uzak bilgisayara şu şekilde erişebiliyor olmalısınız:
- PsExec console output’larını almak için, çalıştığı dizinde Log isimli yeni bir dizin açar ve her bir uzak bilgisayar için 4 adet txt uzantılı çıktı kayıt eder ve içerisindeki bilgileri kullanır. Bu log dosyalarının boyutu örneğin 1000 adet bilgisayar için toplam 1MB kadardır.
Kullanım Klavuzu
1) Script’i indirin ve örneğin C:\ altına açın. (C:\Source gibi…)
2) Dizin içindeki bilgisayar-listesi.txt isimli dosyaya üzerinde işlem yapmak istediğiniz bilgisayarların hostname veya ip adreslerini girin. Her bir satırda tek bilgisayar yer almalı.
3) Administrator modda açılmış bir PowerShell penceresinde önce
Get-ExecutionPolicy ile execution policy ayarını kontrol edin. Eğer Unrestricted değil ise aşağıdaki komutu çalıştırarak ayarlayın.
Set-ExecutionPolicy -ExecutionPolicy Unrestricted
Aksi durumda aşağıdaki gibi bir hata alabilirsiniz.
- File C:\Source2\TR3-TimeZone.ps1 cannot be loaded. The file C:\Source2\TR3-TimeZone.ps1 is not digitally signed. You cannot run this script on the current system. For more information about running scripts and setting execution policy, see about_Execution_Policies at http://go.microsoft.com/fwlink/?LinkID=135170.
4) Ardından ilgili dizine gidin ve Script’i başlatın.
5) Tamamlandığında istatistikler raporlanır ve gidip sonuç dosyasını inceleyebilirsiniz. Hedefiniz sonuç dosyasındaki Time Zone Durumu sütununda Ayarlar Dogru ifadesini görmek.
Sonuç Dosyası ve Açıklamalar
Script işini bitirdikten sonra aynı dizin içerisinde Sonuc_[tarih-saat].csv isimli bir dosya oluşturur. Bu dosyayı Microsoft Excel ile açıp ufak bir biçimlendirme ile aşağıdaki hale dönüştürebilirsiniz.
Bilgisayar – Hostname veya IP adresi..
İşletim Sistemi – İlgili bilgisayarın işletim sistemi sürümü.
Time Zone Standard Name – İlgili bilgisayar üzerinde o an seçili olan Time Zone’un registry DB’de yer alan ismi.
Time Zone Display Name – İlgili bilgisayar üzerinde o an seçili olan Time Zone’un görünen ismi.
Time Zone Durumu – En önemli sütun. Burada ilgili bilgisayar için herhangi bir ayarlama gerekip gerekmediği bilgisi yer alır.
- Ayarlar Doğru – O bilgisayar için herhangi bir müdahaleye gerek yoktur çünkü ya hotfix yüklenmiş ya da ilgili ayarlar uygulanmış ve aktif edilmiştir. Bir bilgisayar için “Ayarlar Dogru” ifadesini gördüğünüzde, o bilgisayar için yapılması gerekenler tamamlanmış demektir.
- Ayarlama Gerekiyor – O bilgisayar için seçili Time Zone ayarı (UTC/GMT:+03:00) Istanbul olmadığı için ayarlama gerektiğini ifade eder. Bu şekilde görünen bilgisayarların neden bu durumda olduğunu anlamak için “Açıklama” sütunundan veya diğer yan sütunlardan yardım alabilirsiniz.
- Alınamadı – Herhangi bir sebepten ötürü (örneğin pc kapalı, admin$ paylaşımına erişim yok, vb.) ilgili bilgisayarın bilgilerine ulaşılamamıştır. Yine neden bu durumda olduğunu anlamak için “Açıklama” sütunundan veya diğer yan sütunlardan yardım alabilirsiniz.
Hotfix Durumu – Eğer desteklenen bir işletim sistemi ise (yani Windows XP ve Server 2003 dışındakiler), üretici tarafından yayınlanan Hotfix’in sistemde yüklü olup olmadığı bilgisini verir.
- Yuklu (KB3194798) – Rresmi bir hotfix yüklü olduğunu ifade eder. (Örneğin Windows 10 için)
- Bekleniyor – Henüz hotfix yüklü olmadığını ama üretici tarafından yayınlanacak bir paketin beklendiğini ifade eder. Ne diyorsa yapın ve bekleyin :)
- Desteklenmiyor – Desteklenmeyen bir işletim sistemi olduğu için herhangi bir hotfix yüklemenin mümkün olmadığını ifade eder. Bu ifade yalnızca Windows XP ve Windows Server 2003’ler için görüntülenir. Script bu noktada xptz.bat dosyasını uygulayarak gerekli çözümü registry ayarları ile sağlar.
Açıklama – İlgili bilgisayarın durumu hakkında kısa ve yönlendirici bir bilgi yer alır.
Sütunların ve yer alabilecek değerlerin açıklamaları kısaca yukarıdaki gibidir. Bu bilgiler doğrultusunda kontrollerinizi gerçekleştirebilirsiniz.
XPTZ.BAT ve W8TZ.BAT Dosyaları Nedir
Desteği sonlanmış Windows 8, Windows XP & Windows Server 2003 için hazırladığım ve (GMT+03:00) Istanbul isimli yeni bir time zone create edip aktif eden registry değerlerini ve bazı komutları içeren toplu komut dosyalarıdır. Geçenlerde birkaç yerde gördüğüm kontrolsüz ve uyumsuz çözümlerden farklı olarak bu işi Time Zone registry DB’iyle uyumlu registry anahtarları kullanarak yapar ve oluşturduğu (GMT+03:00) Istanbul isimli yeni Time Zone, tarih/saat ayarları dışında systeminfo veya WMI sorgularında da düzgün görüntülenir.
Unutmayın: xptz.bat ve w8tz.bat gibi registry tabanlı çözümleri sadece desteği sonlanmış Windows 8, Windows XP ve Windows Server 2003 için uyguluyoruz. Çünkü maalesef başka seçenek yok. Diğer sürümler için ise mutlaka yayınlanmış güncellemeleri kullanın.
Script yanında gelen xptz.bat ve w8tz.bat dosyaları GPO ile de uyumludur. AD Domain yapısında bir GPO oluşturup startup script olarak da dağıtabilirsiniz. GPO’daki startup script’ler, logon script’lerin aksine kullanıcı yetkileriyle değil sistem yetkileriyle çalışırlar. Bu yüzden startup script olarak göndermeniz önemli. Ayrıca bu bat dosyalarını yetkili bir kullanıcıda çift tıklayarak da uygulayabilirsiniz.
TR3-TimeZone.ps1 İndirme Bağlantısı ve Sürüm Geçmişi
Sürüm 2.1 | İNDİR | (19.10.16)
- Hotfix yüklü olduğu halde Turkey Standard Time dışında bir time zone seçili (Sorun 3) sistemler için daha iyi tanılama ve açıklama desteği.
Sürüm 2.0 | (18.10.16)
- Windows Vista, 7, 8.1 ve Windows Server 2008, 2008 R2, 2012, 2012 R2 için standalone hotfix paketlerini uzaktan ve otomatik olarak yükler.
- Desteklenen tüm Windows sürümleri için standalone ve rollup güncelleme paketlerinin yüklü olup olmadığının kontrol eder ve Time Zone ayarlarıyla birlikte raporlar.
- Desteği sona eren Windows 8 (yani 8.1 olmayan) sürüm için w8tz.bat ile (UTC+03:00) Istanbul isimli time zone’u oluşturur, ayarlar ve raporlar.
- Standalone hotfix paketleri source.zip içerisinde yer alır, yeniden indirmenize gerek kalmaz.
Sürüm 1.1 | (17.10.16)
- Windows 10’un tüm ana build’ları için tanılama desteği.
Sürüm 1.0 | (13.10.16)
- Windows 10 ve Windows Server 2016 – Hotfix yüklemesi yapmaz. Automatic Update ile yüklenmiş KB3194798’i ve Time Zone ayarlarını raporlar.
- Windows Vista, 7, 8, 8.1, 10 ve Windows Server 2008, 2008 R2, 2012, 2012 R2 – Hotfix henüz hazır olmadığı için yükleme yapmaz. Sadece Time Zone ayarlarını raporlar.
- Windows XP ve Windows Server 2003 – xptz.bat isimli dosyayı uygular ve Time Zone ayarlarını raporlar.
Bilinen Sorunlar ve Çözümler
Script, Windows Update veya WSUS gibi yöntemlerle yapılan yüklemeler sırasında veya sonrasında yaşanan sorunları ve çözümleri bu bölüm altında toparlıyorum. Eğer siz de bir sorun veya çözüm tespit ettiğinizde yazı altına yorum olarak eklerseniz, diğer ziyaretçilerin de faydalanabilmesi için bu bölüme taşıyıp listeleyebilirim.
*** Vaka 1 ***
Düzeltmeler sonrası özellikle Windows XP’ler ve Windows Server 2003’ler için Time Zone StandardName değişikliği olabileceği için, geçmişte farklı bir Time Zone’da oluşturulmuş Outlook takvim hatırlatıcıları sorun yaratabilir. Aynı durum zamanlanmış görevler için de geçerli. Belki hatırlarsınız bu sorunlar geçen sene de yaşanmıştı. Özellikle Windows XP’nin ve Server 2003’ün bazı sürümleri gibi geçmişte (UTC/GMT+02:00) Istanbul olmayan ama bugün (UTC/GMT+03:00) Istanbul olan sistemlerin bu sorundan etkilenme ihtimali var. Windows Vista ve sonrası ise bu sorunu geçen sene zaten atlattı ve Turkey Standard Time’a çoktan geçiş yaptı. Bu işletim sistemleri (UTC/GMT+02:00) Istanbul yani aslında Turkey Standard Time isimli zone’a çoktan geçtiği için bu seferki +3 değişikliğinden etkilenmeyecekler, sadece mevcut time zone’un görünen ismi ve DST ayarı değişiyor olacak.
Çözüm: Geçen sene her bir takvim hatırlatıcısını bir kez açıp, örneğin hatırlatma saat’ini 30dk ileri alıp kayıt ve sonra yeniden saati geri alıp kayıt şeklinde düzeltenler olduğunu hatırlıyorum. Mantık ilgili hatırlatıcıyı yeni time zone’da bir kez düzenlemeye dayanıyor. Aynı çözüm etkilenen zamanlanmış görevler için de geçerli. Aklınızda bulunsun.
*** Vaka 2 ***
TR3-TimeZone.ps1 yardımcı script’i ile yükleme yaparken Windows Server 2012 (R2 olmayan) işletim sistemine sahip bazı bilgisayarlarda çok uzun süre bekliyor ve hatta bazen işini tamamlayamayıp diğer bilgisayara geçemiyor olabilir. Bu durum güncelleme paketiyle ilgili ve sanırım Windows Server 2012 için yayınlanan standalone pakette bir sorun var çünkü kurulumu direkt sunucu üzerinde paketi çalıştırarak denediğinizde de Searching for updates on this computer… aşamasında aşırı bekliyor ve bazen bu aşamadan çıkıp kuruluma geçemiyor.
Geçici Çözüm 1: İnternet erişimi olan (muhtemelen Microsoft/Windows update servislerine ulaşabilen) Windows Server 2012 sunucularda yükleme işlemi kısa sürede ve başarılı bir şekilde tamamlanıyor. Bu durumdaki sunuculara geçici olarak internet erişimi sağlayıp tekrar deneyebilirsiniz.
Geçici Çözüm 2: Eğer bu durumda olan Windows Server 2012’ler varsa, şimdilik onları
bilgisayar-listesi.txt dosyasından çıkartabilir, ayrı bir listede tekrar çalıştırabilir, WSUS veya diğer dağıtım yöntemleriyle (bunların da çalıştığından emin değilim) yükleme yapmayı deneyebilirsiniz.
*** Vaka 3 ***
Sizlerden gelen geri bildirimlere göre: Script ile hotfix yüklemesi sonrasında yükleme işlemi başarılı tamamlandığı ve bilgisayar üzerinde (UTC/GMT+03:00) Istanbul isimli time zone oluştuğu halde, rapor çıktısında Time Zone Durumu sütununda hala ayarlama gerekiyor, Açıklama sütununda ise “Hotfix basari ile yuklendi ancak Turkey Standard Time isimli Time Zone secili degil ya da Time Zone verileri hatali durumda” ifadeleri yer alıyor ve sistemde yeni (UTC/GMT+03:00) Istanbul isimli time zone seçili görünmüyor.
Çözüm: Açıkçası bu bir sorun değil çünkü hotfix’ler sadece (UTC/GMT+03:00) Istanbul isimli time zone’u oluşturur veya günceller. Eğer yükleme öncesinde sunucu üzerinde Turkey Standard Time yani (UTC/GMT+02:00) Istanbul (dikkat edin +2) seçili değilse, hotfix (veya script) bu ayarı değiştirip değiştirmek istediğinizi bilemeyeceği için herhangi bir müdahalede bulunmaz. Bu beklenen ve olması gereken bir davranış. Rapordaki açıklama sütununda yer alan “Turkey Standard Time isimli Time Zone secili degil” cümlesi de tam olarak bunu ifade ediyor; her şey tamam, ama seçili time zone Turkey Standard Time değil… Bu durumda seçimi sizin yapmanız gerekiyor.
Anladığım kadarıyla bazı ortamlardaki sunucuların veya istemcilerin time zone’ları geçmişte Turkey Standard Time şeklinde ayarlanmamış. Eğer bilinçli ise ne mutlu. Eğer değil ise bu bir sorun demektir. Script içerisine eğer seçili değilse Turkey Standard Time‘ı seçen bir fonksiyon koymam hiç de zor değil ama dediğim gibi bu herkesin ihtiyacı olmayacaktır ve bu sefer de hotfix yüklü ama Turkey Standard Time olması gerekmeyen bilgisayarları değiştirmiş oluruz. En doğrusu durumu raporlamak ve değişiklik kararını sistem yöneticisine bırakmak olduğu için bu şekilde tasarladım.
Peki bu fonksiyon parametrik olamaz mı? Olabilir. Eğer bu durumda çok bilgisayar varsa yani talep olur ise bu özelliğe sahip bir sürüm yayınlayabilirim. Bu süre zarfında ben yine de duruma daha iyi işaret edebilmek adına açıklama sütunundaki bilgiyi geliştiren ve daha net ifade eden yeni bir sürüm (v2.1) yayınlayacağım.
*** Vaka 4 ***
Altyapı sistemlerini operate ettiğimiz bir müşterimizde fark ettik ki patch deployment sonrası, üzerinde logon hours tanımı olan yani sınırlı zaman aralığında oturum açma iznine sahip AD user account’ların permited time’ları bir saat ileri gitmiş. Örneğin sabah 8 ile akşam 6 arası oturum açma izni olan hesaplar, patch sonrası sabah 9 ile akşam 7 olarak değişmiş. Bu 1 saatlik değişiklik, kullanıcıların sabah geldiğinde oturum açamamasına veya planlanan saatler dışında oturum açabilmesine yol açıyor, bu yüzden dikkatli olmak gerekli.
Olayın DC’lere patch yüklemesiyle gerçekleşen (UTC+03:00) Istanbul değişikliği sonrasında ortaya çıktığı kesin çünkü bu durum normal şartlarda DC üzerindeki time zone’u elle değiştirdiğinizde de yaşanıyor. Yani sorunun asıl kaynağı patch değil time zone değişikliği; patch bu duruma vesile olan bir etken. İlginç olan ise bu seferki (UTC+03:00) Istanbul değişikliğinde local time aynı kaldığı halde logon hours tanımlarının yine de 1 saat ileri gitmesi. Ha bana göre local time değişmiş olsa bile logon hours tanımları 1 saat ileri gitmemeli çünkü saat değişikliklerinde çalışanların işe geliş saatlerini de 8’den 9’a 1 saat ileri almıyoruz öyle değil mi? :)
Yaşanan bu durumu birkaç farklı senaryoda test ederek doğruladık ve etkisini Microsoft’ta ilgili ekibe raporladık. Bilgi geldiğinde burayı update edeceğim.
Çözüm: Şimdilik (ve bence ileride de farklı bir seçeneğiniz olmayacak) uygulayabileceğiniz tek çözüm, bu durumdaki AD user account’ları bulup logon hours tanımlarını yeniden 1 saat geri almak. Bu işi GUI’den manuel yapabileceğiniz gibi PowerShell ile topluca da gerçekleştirebilirsiniz.
*** ***
Eğer sorularınız olursa yazı altına yorum olarak ekleyebilir, güncellemeleri bu blog post üzerinden veya şuradan takip edebilirsiniz: @serhatakinci. Yeni yazılardan hemen haberdar olmak isteyenler ise tek yönlü çalışan e-posta duyuru listesine üye olmayı tercih edebilir; bu sırada yardım gerekirse yönergeler şurada.
Not: 6-14 Ekim tarihleri arasında yorum bölümü çalışmıyormuş. Düzelttim. Hiç de söylemiyosunuz ha :)
Yazı Etiketleri: DST , PowerShell , Time Zone , Windows , Yaz Saati Uygulaması
Aşağıdakiler de İlgini Çekebilir
- • Windows Server 2016 Sürümleri, Lisanslama, Özellikler
- • Windows 25 Ekim Sabahı 1 Saat Gerideyse Yapılması Gerekenler
- • Get-DstInfo | Windows Yaz Saati Uygulaması için Kontrol Aracı
- • Windows DST Hotfix KB3093503 için Toplu Yükleme Aracı ve Yaz Saati Uygulaması 2015
- • Windows RDP Güvenliği için Öneriler