Active Directory ve Exchange Schema Versiyonu Kavramları
Active Directory mimarisini öğrenirken en temel şeylerden biri olan active directory veri tabanı içerisindeki bölümleri incelemek ile başlıyoruz. Bu bölümlere baktığımız zaman
Domain
Configuration
Schema
Application
Olmak üzere 3 bölümden oluştuğunu görebiliyoruz.
Her ne kadar yurdum bir bilgi işlem çalışanı bunlar ile pek ilgilenmiyor olsa bile schema konusunda herkesin bir fikri vardır. Çünkü eğitmen ve danışman seviyesinde değil, Banka, Telekom, GSM gibi bir şirket organizasyonunda çalışmıyor ise bu kadar derin bilgiler çok gerekli değil.
Ama schema bunlara göre biraz farklı, çünkü şirket seviyesi ne olur ise olsun mutlaka bir kere bu sistem yöneticisi schema ile tanışmış oluyor J Bunun temel sebebi ise Exchange, Lync, System Center veya benzeri ürünlerin schema genişletme ihtiyacı. Veya bir migration projesinde ki yine benzer ihtiyaçlar bulunmaktadır. Buradan yola çıkaraktan bende temel anlamda neymiş bu schema ve nedir bunun sürümleri noktasında bilgi vermek istiyorum.
Schema, temel olarak AD veri tabanındaki bölümlerden biri olup domain bölümünde saklanan objeler için öz nitelik olarak isimlendirdiğimiz attribute tablolarını saklamaktadır. Yani temel olarak aslında veri değil veri saklanacak tabloların detaylarını saklar.
İlk okuyunca bana da karışık geliyor ama örnekle açıklayınca güzel oluyor J
Bir kullanıcının adı, soyadı, şifresi, telefon numarası gibi bu alanları schema tabloları belirler. Ama örneğin bir kullanıcı telefon numarası schema içerisinde değil domain bölümü içerisinde saklanır.
Başka bir örnek, Exchange server yüklemeden önce AD üzerinde göremediğiniz pek çok öz nitelik birden ortaya çıkar, evet bunlar boştur ama tablo olarak schema genişlediği için artık bunlar sizin kullanımınıza sunulmuştur.
Yukarıda yine bir schema genişlemesinden bahsettim hemen bunu da açıklayayım.
Örneğin yapınıza yeni bir ürün kuracaksınız, bu ürün eğer AD üzerinde bir takım bilgiler saklamak istiyor ise öncelikle bu bilgileri saklaması için uygun tabloların olması gerekmektedir. Bu nedenle Exchange, lync ve benzeri ürünlerde öncelikle schema genişletilir, yani gerekli olan yeni tablolar oluşturulur ve sonrasında ürün ile beraber bu alanlar kullanılmaya başlanır.
Gelelim bu schema sürümlerine;
Belki etrafınızdan da duymuş olabilirsiniz, işte server 2008 kullanıyorum schema versiyonum 44, ya da server 2012 kullanıyorum schema versiyonum 56 gibi, Aşağıda Microsoft tarafından tanımlanmış bazı schema versiyonları mevcuttur.
İşletim Sistemi |
Schema Versiyonu |
Windows Server 2000 |
13 |
Windows Server 2003 |
30 |
Windows Server 2003 R2 |
31 |
Windows Server 2008 |
44 |
Windows Server 2008R2 |
47 |
Windows Server 2012 |
56 |
Bu schema versiyonları service pack paketi yüklemelerinde bile değişiklik sağlayabilir. Yine bunu da bir örnekle açıklamak gerekirse Exchange server 2010 SP1 li kurdunuz bunun forest tarafındaki range upper attribute una baktığınızda ms-Exch-Schema-Version-pt değerinin 14726 olduğunu gözlemlerken, Exchange Server 2010 için SP3 kurulumu yaptığınızda bu versiyonun 14734 e yükseldiğini görebilirsiniz. Bu değerlerin neler olduğunu merak ediyorsanız aşağıdaki gibidir. Makalem bitmeden bu değerlere de nereden bakılabileceğinizden de bahsediyor olacağım.
Exchange Version |
Forest rangeUpper attribute of ms-Exch-Schema-Version-Pt |
Forest objectVersion attribute of Organization container |
Domain objectVersion attribute on Microsoft Exchange System Objects |
Exchange 2000 RTM |
4397 |
– |
4406 |
Exchange 2000 SP3 |
4406 |
– |
4406 |
Exchange 2003 RTM |
6870 |
6903 |
6936 |
Exchange 2003 SP1 |
6870 |
6903 |
6936 |
Exchange 2003 SP2 |
6870 |
6903 |
6936 |
Exchange 2007 RTM |
10637 |
10666 |
10628 |
Exchange 2007 SP1 |
11116 |
11221 |
11221 |
Exchange 2007 SP2 |
14622 |
11222 |
11221 |
Exchange 2007 SP3 |
14625 |
11222 |
11221 |
Exchange 2010 RTM |
14622 |
12640 |
12639 |
Exchange 2010 SP1 |
14726 |
13214 |
13040 |
Exchange 2010 SP2 |
14732 |
14247 |
13040 |
Exchange 2010 SP3 |
14734 |
14322 |
13040 |
Exchange 2013 RTM |
15137 |
15449 |
13236 |
Exchange 2013 CU1 |
15254 |
15614 |
13236 |
Exchange 2013 CU2 |
15281 |
15688 |
13236 |
Exchange 2013 CU3 |
15283 |
15763 |
13236 |
Gelin şimdi Schema versiyonuna nasıl bakabileceğimizi görelim.
Başlat / Çalıştır üzerinde ADSIedit.msc komutunu çalıştırıyoruz. ADSIedit; Active directory servis ara yüzüne bağlanabilmemizi sağlayan bir araçtır.
Açılan ara yüzden ADSI Edit üzerinde sağ tıklayarak connect to… butonuna basıyoruz.
Gelen ekranda Path kısmında hangi sunucuya bağlı olduğunuzu görebilirsiniz.
Computer kısmından sunucu seçimi yapıp istediğiniz bir sunucuya da bağlanabilirsiniz. Biz schema ile ilgili işlemler yapmak istediğimiz için select a well known naming context seçeneği ile ilerliyeceğiz. Burada schema seçeneğini seçimini yaparak ok butonuna basıyoruz.
Gelen ekranda CN=Schema ile başlayan kısımda sağ tıklayarak Properties seçeneğini seçiyoruz.
Object version attribute unun value değerinin 56 olduğunu görmektesiniz. Bu yukarıdaki tablolarda belirtildiği gibi Windows Server 2012 işletim sistemine ait versiyondur.
Dip Not: Bazı durumlarda ortamınıza; ortamınızdan farklı versiyon bir domain controller eklemeniz gerektiğinde windows server 2008 r2 gibi schema versiyonlarının uyumlu olması gerekir bundan dolayı schema versiyonunu yükseltmeniz gerekebilir.
*** Bu versiyonun elle değiştirilmesi önerilmez
Exchange Server 2010 a ait schema versiyonuna ait bilgiye de şu şekilde bakabiliriz. Schemayı genişlettikten sonra Name kısmında ms-Exch-Schema-Version-Pt yi bulup özelliklerini incelemelisiniz.
Attribute editor üzerinde range upper değerinin yukarıda belirtilen exchange tablosuyla uyumlu olduğunu gözlemleyebilirsiniz.
Schemayı kontrol etmenin bir diğer yolu ise LDP.exe ile mümkün bunun için başlat/çalıştır da ldp.exe komutunu çalıştırmamız gerekiyor.
Açılan menu üzerinden Connection/Bind seçimini yaparak devam ediyoruz
Gelen Bind ekranında hiç bir şeyi değiştirmede Bind as currently logged on user seçimiyle ok butonuna basarak oturumu açalım.
View tabından Tree seçimini yaparak schema ya bağlanmak için gerekli seçim ekranına geliyoruz
Bu ekranda CN=Schema.CN=Configuration ile devam eden seçeneğe gelerek seçiçiçizi yapıyoruz bu arada root domain adım davuteren.com dur.
Schema açıldığında orta bölümde object version un 56 olduğunu yine görebilirsiniz.
Bu alanda en üst butonların olduğu bölümde options/general seçeneğini seçerek Max Childeren değerini 65535 olarak değiştiriyorum. Bunun sebebi Exchange Server la alakalı schema versiyonuna bakmak istiyorum burada varsayılan olarak gelen değer 1000 satırlık obje geldiği için ben bunu tüm sorguları göstermesi için bu şekilde değiştiriyorum.
Schema içerisinde ms-Exch-Schema-Version-Pt olan bölüme gelerek range upper değerinin yukarıdaki tabloyla eşleştiğini gözlemleyebilirsiniz.
Bu durumda benim sistemimde exchange server 2010 SP3 lü versiyon var demektir. J
Biraz çok oldum ama schema versiyonunu DSQuery ile de komut satırından şu şekilde bulabilirsiniz
dsquery * CN=ms-Exch-Schema-Version-Pt,cn=schema,cn=configuration,dc=davuteren,dc=com -scope base -attr rangeUpper
Powershell ile;
http://gallery.technet.microsoft.com/Check-the-Exchange-3ed71580
Registry ile;
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NTDS\Parameters\System Schema Version değerini açıp DWORD değerini decimal gösterimde gösterdiğinizde görebilirsiniz.
Bildiklerimi size olabildiğince aktarmaya çalıştım, umarım faydalı olmuştur.
Bir sonraki makalemde görüşmek ümidiyle