İlginizi Çekebilir
  1. Ana Sayfa
  2. Server 2003
  3. Directory Service Araçları İle İşlerinizi Kolaylaştırın

Directory Service Araçları İle İşlerinizi Kolaylaştırın


Programlama teknolojilerini kullanarak Active Directory üzerinde birçok işlem yapabilirsiniz. Örneğin VB.net içinde directory.services objesini kullanarak kullanıcı yaratma, değişiklik yapma, sorgulama gibi birçok işlemi programlamanız mümkün. Ldifde ve csvde.exe araçlarını kullanarak ta bahsedilen işlemler yapılabilir. Ama bu teknolojileri kullanmak ciddi bir know how gerektirmektedir. Bu makalemde 2003 ile beraber gelen birkaç aracı kullanarak yukarıda bahsettiğimiz işleri otomatik hale nasıl getirebileceğinizi anlatacağım.

 

İnceleyeceğimiz komutların işlevlerine kısaca göz atalım:

 

Dsadd komutu ile Computer, Contact, , User ve OU objeleri ekleyebilirsiniz.

Dsget komutu ile objelerinizin, istediğiniz attributelerini çekebilirsiniz.

Dsmod ile daha önce yarattığını objelerin özelliklerini değiştirebilirsiniz.

Dsmove ile aynı domain içinde objelerin lokasyonunu değiştirebilirsiniz.

Dsquery ile Ldap sorgulama dilini kullanarak obje listeleri oluşturabilirsiniz.

Dsrm ile objelerinizi silebilirsiniz.

 

1. DsAdd’i Kullanmak:


Yaratmak istediğiniz kullanıcıları, ad soyad olacak şekilde bir .txt dosyasına yazalım.

 

Dsadd aracının kullanımı ile ilgilenmemiş olanlar kullanıcı yaratmak için bu kadar parametreyi her seferinde yazmak yerine konsol yardımıyla yapmayı tercih ederler. Fakat elinizdeki bu araç doğru kullanıldığı takdirde mucizevî işler yapabilir. Batch dosyaları kullandığınızda herşeyin çok kolay olduğunu göreceksiniz. Aşağıdaki gibi bir .txt dosyası ve bir .bat dosyası yaratalım:

 

Örnek kullanici.txt dosyası;

 

Erkan Sezgin

Emre Aydin

Önder Erunsal

 

Örnek batch dosyası;

 

For /f "tokens=1,2 delims= "

  %i in (c:\kullanici.Txt) do

  Dsadd user "cn=%j %i,ou=Genel,DC=mshowto,DC=org" -samid %i.%j

 

For /f komutu belirtilen dosya içerisinde bir döngü yaratacaktır. Delims= kısmında belirtilen boşluk bilgisini kullanarak dosya içerisinde ilk kelimeyi birinci parametre yani %i boşluktan sonraki kelimeyi %j olarak alacak ve ikinci parametre olarak kullanacaktır.

 

Batch dosyası ilk satır için aslında aşağıdaki gibi bir kod çalıştıracaktır.

 

Dsadd user "cn=Sezgin Erkan,ou=Yazarlar,DC=mshowto,DC=org" -samid Erkan.Sezgin

 

Komut çalıştıktan sonra şekil-1 deki gibi kullanıcılarınızın yaratıldığını görebilirsiniz.

 

Şekil-1

 

Şekil-2

 

Dsadd user /? komutuyla kullanıcıya ekleyebileceğiniz parametreleri görebilirsiniz.

 

2. DsMod’u Kullanmak

 

Dsmod’u objelerin attribute’lerini değiştirmek için kullanabileceğimizi söylemiştik. Yukarıdaki örnekte dsadd ile yarattığımız kullanıcıların özeliklerinde, şekil-2 dede görebildiğimiz bazı eksik tanımlama alanları bulunuyor. Şimdi bu alanların nasıl tanımlanması gerektiğini inceleyelim.

 

-fn ve –ln switch’lerini kullanarak user’ın givenName ve FirstName attribute’lerini –upn ile principal name değerlerini verelim.

 

For /f "tokens=1,2 delims= "

  %i in (c:\kullanici.Txt) do

  Dsmod user "cn=%j %i,ou=Yazarlar,DC=mshowto,DC=org" -fn "%i" -ln "%j" –upn  %i.%j@mshowto.org -disabled no -pwd Password1

 

Komutuyla daha önce yarattığımız kullanıcıların fn "%i" -ln "%j kısmında görüldüğü üzere attribute’lerini ayarlıyoruz. Fakat dikkat etmemiz gereken başka bir nokta, kullanıcıların default disable olarak yaratılmalarıdır. Disabled no -pwd Password1 parametrelerini dsmod satırının sonuna eklemeliyiz. Kullanıcıyı enabled eden bu parametre’yi verdikten sonra Windows 2003’ün default password policy’si gereği kompleks bir password vermemiz gerekmektedir.

 

3. Dsquery’yi Kullanmak

 

Domainizde bulunan tüm kullanıcıların listesini almak isterseniz;

 

·          Dsquery user –limit 1000 komutunu kullanabilirsiniz. 1000 yerine çıktısını almak istediğiniz sayıyı belirtebilirsiniz.

 

·          dsquery user "ou=Yazarlar,DC=mshowto,DC=org"

 

Komutu ise çıktısını karşımıza getirir.

 

“CN=aydin emre,OU=TEST,DC=mshowto,DC=org"
"CN=erunsal onder,OU=TEST,DC=mshowto,DC=org""

 

·          dsquery user "ou=Yazarlar,DC=mshowto,DC=org" | dsmod user –disabled yes

 

gibi bir komuttaki,”|” parametresi, dsquery ile oluşturulan çıktıyı dsmod komutuna yönlendirir. dsquery ile oluşturulan bir çıktı dsmod için bir girdi olarak kullanılır.

 

·          C:\>dsquery user -inactive 2

 

Komutu ise 2 hafta boyunca logon olmayan kullanıcılarınızın listesini gösterir.

 

"CN=user1,OU=test,DC=mshowto,DC=org"

"CN=user2,OU=test,DC= mshowto,DC=org"

"CN=user3,OU=test,DC= mshowto,DC=org"

"CN=user4,OU=test,DC= mshowto,DC=org"

"CN=user5,OU=test,DC= mshowto,DC=org"

 

·          dsquery * "ou=yazarlar,DC=mshowto,DC=org" -filter "(&(objectClass=user)(givenName=e*))"

 

Komutu ile dsquery’i bir ldap query ile filtreleyerek kullanabilirsiniz. İsmi “E” ile başlayan kullanıcıları tespit etmenizde işinize yarayacaktır.

 

·          For /f "delims=*" %i in (‘dsquery * "ou=yazarlar,DC=mshowto,DC=org"

-filter "(&(objectClass=user)givenName=e*))"’) do dsmove -newparent "cn=users,DC=mshowto,DC=org" %i

 

Komutu ile givenName’i “E”  ile başlayan kullanıcıları Users container’ına taşıyabilirsiniz. Komut içinde parametrenin %i olduğunu belirtiyoruz ve for /f komutuyla bir döngü oluşturuyoruz. Dsquery, belirtilen active directory lokasyonunda “E”  ile başlayan bir kullanıcı bulduğunda dsmove komutunu çalıştırıyor.

 

Şekil-3

 

İlk bakışta kullanışsız görünen DS araçlarının batch dosyalarını etkin kullandığınızda gerçekten işini kolaylaştıracaktır.

Yorum Yap

Yorum Yap