Active Directory database yapısına bir attribute eklemek gerekir kimi zaman. Mesela Türkiye şartlarında çalışanlarınızın SSK veya T.C.Kimlik numarası veya Kan gurubu bilgisi gibi. Bu yazımda bu tip istekleri karşılamak için izlenecek yolu tarif edeceğim.
Öncelik ile bize AD kurulu bir server ve Windows 2003 Support Tool gerekiyor. AD nin Schema bölümü üzerinde yapacağımız işlemler için de MMC ye Active Directory Schema yı eklemek gerekecek. Bunun için yapmamız gereken regsvr32 schmmgmt.dll komutunu çalıştırmamız gerekecek. Start butonundan Run ‘ ı tıklayıp komutumuzu yazıyoruz ve işlemin başarılı bir şekilde gerçekleştiğine dair sistemden mesaj alıyoruz.
Sıra aşağıdaki linke tıklayarak indirebileceğimiz Windows 2003 Support Tools kurulmasına geldi. ADSIEdit toolunu kullanabilmemiz için bu W2K3 Support Tools ‘u yüklemeliyiz.
http://download.microsoft.com/download/3/e/4/3e438f5e-24ef-4637-abd1-981341d349c7/WindowsServer2003-KB892777-SupportTools-x86-ENU.exe
Üstte belirtilen işlemlerden sonra artık mutfakta eksik malzeme kalmadı. Şimdi amacımız AD nin schema bölümüne Kan Grubu, TC Kimlik Numarası ve SSK Numarası bilgilerini eklemek Start butonuna basıp Run a MMC yazıp enter a basalım. Oradan da File menusunden Add /Remove snap-in linkini tıklayalım. Çıkan ekrandan “Active Directory Schema” yı Add butonuna basarak ekleyelim.Close dedikten sonra OK yi tıklayalım. Artık AD Schema konsoluna ulaşabiliriz. Dikkat ederseniz Attributes ve Classes bölümleri var. Attributes üzerine gelip sağ mouse tuşu ile Create Attribute diyeceğiz.
Burada Create Attribute dediğimizde karşımıza çıkan ekranda eklemek istediğimiz Attribute özel değerlerin girilmesi için kullanacağımız ekrana ulaşırız. Bizler Kan Grubu için Kangrubu TC Kimlik Numarası için TCKimlik, SSK numarası için SSKno isimlerini kullanacağız.
Her bir attribute için işlemi tekrarlayıp istediğimiz attribute leri schema ya eklemiş olacağız. Burada unutulmaması gereken eklediğimiz attributelerin silinemeyeceğidir.
Bütün attribute ler eklendikten sonra yapmamız gereken işlem bu attribute lerin Classes bölümünde user objesine attribute olarak ilişkilendirilmesi kalıyor. Bunu da Schema konsolunda Classes bölümünde yapacağız. Classes bölümünde User’ı bulup özelliklerinde Attribute sekmesine tıklayıp Biraz evvel oluşturduğumuz Kangrubu, TCKimlik, SSKno attribute lerimizi ekleyeceğiz.
User objesinin Propertiesinde bulunan attribute sekmesinde Add dedikten sonra çıkan “Select a Schema object” ekranında tek tek daha önce oluştruduğumuz SSKno ,TCKimlik , Kangrubu attribute lerini tek tek bulup ekleyeceğiz. Ekleme işlemi bittikten sonra schema konsolundaki işimiz de bitmiş olacak
Yukarıda Kangrubu , TCKimlik,SSKno attributelerini eklediksek artık Schema konsolunu kapatabiliriz. Şimdi Start a basıp Run a adsi.edit yazıp ADEdit (Support Tools ile geliyor) toolunu çalıştımamız gerekecek. Tool u çalıştırdığınızda Üç bölümden oluşan AD yapısını göreceksiniz. Bizim işlem yapacağımız yer Configuration kısmı olacak. Configuration kısmının içine girip orada kendi AD domaininizin configuration paritition ını göreceksiniz. Onun da içine girdiğinizde CN=Display Specifiers ‘ ı tıklayın ve onun altında CN=409 ‘ girin. Burada CN=user-Display kayıdını bulup properties ine girin. Buraya daha evvel eklediğimiz attribute ler için görsel ilişki tanımlayacağız.
User-Display properties ine girdiğimizde “Attribute Editor” tabında attributes listesinden adminContexMenu üzerine gelip edit diyelim. Karşımıza çıkan Multi-valued String Editor penceresinde şu aşağıdaki kayıtları teker teker ekleyerek girmemiz gerekecek.
,&Kangrubu, C:Kangrubu.vbs
,&SSKno, C:SSKno.vbs
,&TCKimlik, C:TCKimlik.vbs
Ekleme işlemleri bittikten sonra ADSI edit toolunu kapatabilriz. Yukarıda eklediğimiz değerlere dikkat edersek 3 adet script ten bahsediliyor. Bu scriptleri yukarıda C sürücüsünün root unda olacağını söylememiz sebebi ile C nin rootuna kopyalayacağız. Scriptleri kendimize göre değiştirip kullanmak da mümkün. Benim scriptlerim aşağıda ki gibi :
Kangrubu.vbs olacak script in içeriği
Dim Kangrubu
Dim User1
Dim temp1
Set Kangrubu = Wscript.Arguments
Set oUser1 = GetObject(Kangrubu(0))
temp1 = InputBox(“Kan Gurubu: ” & oUser1.Kangrubu & vbCRLF & vbCRLF & “Girilmis degeri degistirmek veya yeni bilgi girmek için asagidaki bölüme yazip enter a basin”)
if temp1 <> “” then oUser1.Put “Kangrubu”,temp1
oUser1.SetInfo
Set oUser1 = Nothing
Set Kangrubu = Nothing
Set temp1 = Nothing
WScript.Quit
SSKno.vbs olacak script in içeriği
Dim SSKno
Dim oUser2
Dim temp2
Set SSKno = Wscript.Arguments
Set oUser2 = GetObject(SSKno(0))
temp2 = InputBox(“SSK-No: ” & oUser2.SSKno & vbCRLF & vbCRLF & “Girilmis degeri degistirmek veya yeni bilgi girmek için asagidaki bölüme yazip enter a basin”)
if temp2 <> “” then oUser2.Put “SSKno”,temp2
oUser2.SetInfo
Set oUser2 = Nothing
Set SSKno = Nothing
Set temp2 = Nothing
WScript.Quit
TCKimlik.vbs olacak script in içeriği
Dim TCKimlik
Dim oUser3
Dim temp3
Set TCKimlik = Wscript.Arguments
Set oUser3 = GetObject(TCKimlik(0))
temp3 = InputBox(“TC.Kimlik-No: ” & oUser3.TCKimlik & vbCRLF & vbCRLF & “Girilmis degeri degistirmek veya yeni bilgi girmek için asagidaki bölüme yazip enter a basin”)
if temp3 <> “” then oUser3.Put “TCKimlik”,temp3
oUser3.SetInfo
Set oUser3 = Nothing
Set TCKimlik = Nothing
Set temp3 = Nothing
WScript.Quit
Scriptleri bir text dosyasının içine kopyalayıp adı ve uzantısını değiştirerek yapmak mümkün.
Bu dosyaları oluşturup C sürücüsüne kopyaladıktan sonra artık Active Directory Users ve Computer konsolunu açıp bir kullanıcının üzerine gelip sağ tuş dediğimizde eklediğimiz attribute leri görebilecek ve kullanabileceğiz.
Evet sonuç itibarı ile AD database ine artık kullanıcılarımızın eklediğimiz bilgilerini de tutturmak mümkün olacak. Scripti kopyalarken satırların kaymamasına ve bu yukarıda anlatılanları test domainlerinizde uyguladıktan sonra yapmanızı tavsiye ederim. Umarım yazım yararlı olur ve bir başka bir makalede görüşürüz.