27 Eylül 2008

IIS Üzerinden SSL Sertifikası İle Güvenlikli Web Yayını

Soru :

Merhabalar, Lokaldeki web sunucumuzu bayilerimizin erişimine sunmayı düşünüyoruz.
Yapımızda Juniper firewall ve SLL(SA2000)mevcut. Sunucuyu en pratik şekli ile SLL üzerinden nasıl yayınlayabiliriz? Tavsiyelerinizi bekliyorum, teşekkürler.

Cevap :

Oncelikle ortama sertifika dagitacak bir CA Server kurmaniz gerekecek. Daha sonra Web Server olan bilgisayar uzerine IIS kurup, yine bu bilgisayar uzerine web sitenizi kurmaniz ve configure etmeniz, akabinde de yayin yaptiginiz web sitesi uzerine de SSL sertifikasini yukleyeceksiniz.

İstediginiz islemi 4 ayri asamada asagida adim adim acikladim. Sirasiyla adimlari yaparsaniz isteginiz gerceklesecektir:


Oncelikle SSL sertifikasina sahip olmaniz gerekir. Lokal sisteminize bir CA server kurarak bu gereksinimi saglayabilirsiniz. Domain’de bir Windows 2000 ya da Windows Server 2003 CA(Certification Authority) Server kurulumu icin http://www.petri.co.il/install_windows_server_2003_ca.htm adresindeki makaledeki adimlari gerceklestirin. Daha sonra IIS yonetim konsoluna gidin.

I- SSL Sertifika İstek Dosyasi Olusturma:

1. Default Web Site ozelliklerine girin ve Directory Security” tabina gecin.
2. Secure Communications altinda “Server Certificates” tiklayin.
3. “IIS Certificates Wizard” çalışmaya başlar ve SSL Sertifika istek dosyasi olusturma sureci baslar. İlk ekrani Next ile gecin.
4. Gelen Server Certificate ekranında “Create a new certificate” secili iken Next tiklayin.
5. Delayed or Immediate Request penceresinde SSL Sertifika istegini online CA server a hemen gondermek icin “Send the request immediately to an online certification authority” seçili iken Next tiklayin.
6. “Name and Security Settings” diyalog kutusunda Name bolumune sertifika icin tanimlayici bir isim girin. Asagidan bit uzunlugunu secin. (1024 bit – default kalabilir.)
7. Next ile sonraki adıma geçin.
8. “Organization Information” penceresinde sirket ve departman bilgilerinizi girin. Next ile gecin.
9. Your Site’s Common Name kutusunda web sitesinin adresini yazin. Ornegin (http://www.mayasoft.com.tr/ gibi). Next ile gecin.
10. “Geographical Information” bolumunde ulke, sehir vb. bilgileri girin. Next ile gecin.
11. “Certificate Request File” ekraninda SSL sertifikasina istekte bulunmak icin kullanilacak sertifika istek dosyasinin (certreq.txt) adi ve yeri belirlenir. Bu konumu bir kenara not edin. Next ile gecin.
12. “Request File Summary” ekraninda su ana kadarki adimlara ait ozel bilgiler listelenir. Herhangi bir yanlislik olup olmadigini kontrol edin.Ve Next – Finish ile bitirin.

Su ana kadar CA Server dan SSL sertifikasi isteme dosyasi olusturduk.

II - SSL Sertifikasi Isteginde Bulunma

1. Simdi de CA Server’dan bu dosyayi kullanarak sertifika isteyelim.
2. Internet Explorer acin.
3. Web adres yoluna http://CAServerAdi/certsrv yazin.
4. Gelen sayfada Request a new certificate tiklayin.
Advanced request tiklayin.
Submit A Certificate Request Using A Base64 Encoded PKCS #10 File secenegini secin ve Next tiklayin.
Certreq.txt dosyasini acin ve gelen form alanina yapistirin.
Submit ile istegi onaylayin.

III - SSL Sertifika Isteginin Onaylanmasi

1. İstekte bulundugumuz SSL Sertifikasi CA Server tarafindan onaylanmalidir.
2. Bunun icin CA Server da Administrative Tools dan Certification Authority acilir.
3. Pending Request gelin. Kuyrukta onay bekleyen sertifikayi bulun ve uzerinde sag tusa basip, Issue ile onaylayin.
4. Onaylanan sertifika Issued Certificates altina gelir. Buradan da kontrolunu yapin.

IV - SSL Sertifikasinin Web Sitesi uzerine Kurulmasi

1. Web Server uzerinde (sertifika isteginde bulundugunuz server) IE acin.
2. Adres cubuguna http://CAServerAdi/certsrv yazin.
3. Gelen ekranda Check On A Pending Certificate tiklayin.
4. Sertifikanizi secin.
5. DER Encoded tiklayin ve daha sonra Download CA Certificate tiklayin.
6. Sertifikanin .cer dosyasini kaydedeceginiz konumu gosterin ve Save ile kaydedin.
7. IIS konsolunu acin.Default Web Site Properties gelin.Directory Security tabina gecin.
8. Secure Communications altinda Server Communication tiklayin.
9. Process The Pending Request And Install The Certificate seçin ve Next tiklayin.
10. Kaydettiginiz .cer uzantili sertifikayi gosterin ve Next tiklayin.
11. Karsiniza sertifika istek dosyasini olustururken girdiginiz bilgiler gelir.Bu bilgileri kontrol edin ve Next ile gecin.
12. Finish ile islemi bitirin.
13. IIS konsolunda Web sitenizin Properties ine gelin.
14. Directory Security tabina gecin.
15. Edit tiklayin.
16. Require SSL ve Require 128 bit encryption kutularini doldurun.
17. Asagidan da Require SSL Certificates secin ve OK’ler ile onaylayarak, islemi tamamlayin.
18. Firewall uzerinde disardan gelen HTTPS (port 443) isteklerini Web Server’a yonlendirin.
19. Artik test edebilirsiniz.

Umarim faydali olmustur.

18 Eylül 2008

System Center Data Protection Manager 2007 İle Yedekleme Çözümleri Hakkinda

Soru :
Merhaba;

DPM ile Server 2008 in system State yedeği alınabiliyor mu acaba?

2008 üzerinde 2007 exchange kullanırken exchange in yedeklerinde bir problem yaşanıyormu?

MOSS 2007 de Server 2008 üzerine kurulu, Portal ın yedeklemesinde ne gibi sorunlar yaşayabiliriz?

Cevap :

System Center Data Protection Manager 2007 ile Windows 2008 Server'larin system state yedeklerini rahatlikla alabilirsiniz. Su ana kadarki cogu Windows 2008 Gecis projelerimizde gerek Windows 2008 system state yedegi icin gerekse de Windows 2008 uzerinde calisan Exchange 2007 yedegini almak icin hep DPM 2007 implementasyonlari gerceklestirdik. Bunun en buyuk nedeni de piyasada yaygin olarak kullanilan yedekleme urunlerinin Windows 2008 destegi henuz cikmadigi icin. Ve su anda Windows 2008 destekli nadir yedekleme urunlerinden biri DPM 2007.

http://www.msexchange.org/articles_tutorials/exchange-server-2007/monitoring-operations/continuous-backup-exchange-server-dpm-2007-part1.html makalesinden DPM 2007 kurulumu ve calisma mantigi hakkinda bilgi alabilirsiniz.

Ayrica asagidaki makalelerde de DPM uzerinde Protection Group'larini olusturma ve bu gruplar icerisindeki Exchange Server ve System State yedeklerinin konfigure edilmeleri konusunda detayli bilgileri bulabilirsiniz.

http://www.msexchange.org/articles_tutorials/exchange-server-2007/monitoring-operations/continuous-backup-exchange-server-dpm-2007-part2.html

http://www.msexchange.org/articles_tutorials/exchange-server-2007/monitoring-operations/continuous-backup-exchange-server-dpm-2007-part3.html

http://www.msexchange.org/articles_tutorials/exchange-server-2007/monitoring-operations/continuous-backup-exchange-server-dpm-2007-part4.html

Yine DPM 2007 ile SharePoint SharePoint Farm yapilarini saglikli ve kolay bir bicimde yedekleyebilirsiniz. Bu konuda da asagidaki makaleleri incelemenizde fayda var:

http://blogs.msdn.com/joelo/archive/2007/10/25/backup-restore-and-data-protection-manager-2007-rtm.aspx

http://technet.microsoft.com/en-us/library/cc262129.aspx

http://edge.technet.com/Media/Change-control-using-Sharepoint-2007-with-DPM/

Gonderdigim makaleleri detayli bir bicimde inceledikten sonra makalelerdeki adimlara gore dogru bir bicimde gerekli konfigurasyonlari yaparsaniz sorunsuz bir bicimde DPM 2007 ile yedeklerinizi alabilirsiniz.

Herhangi bir problem yasarsaniz, ya da kafaniza takilan noktalar olursa da elimizden geldigince yardimci olmaya calisirim.

Kolay gelsin,
Mesut ALADAG
Technology Director
Microsoft Certified Trainer
www.mayasoft.com.tr www.mesutaladag.com www.cozumpark.com

09 Eylül 2008

DS KOMUT SATIRI ARAÇLARI - I

Windows Server 2003 işletim sisteminin getirdiği yenilikler arasında Active Directory Komut Satırı Araçlarının da bulunduğunu ilk bölümlerde anlatmıştık. Şu ana kadar grafiksel ortamı kullanarak active directory içerisinde nesne oluşturma, silme, üzerinde değişiklik yapma vb. gibi işlevleri komut satırından DS komut satırı araclarını kullanarak gerçekleştirebilirsiniz. Windows Server 2003 active directory sisteminin yönetiminde son derece kolaylıklar sağlayan DS komut ailesini bu bölüm altında inceleyeceğiz. Örneğin, DSADD USER komutu ile ayrı ayrı çok sayıda kullanıcıyı komut satırından açabilir, ya da bunu bir toplu işlem dosyası (batch file) içerisine yazarak aynı anda çok sayıda kullanıcıyı komut satırından oluşturabilirsiniz.

DS KOMUT AİLESİ

DSADD.EXE : Active Directory icerisinde belirtilen konumda, belirtilen isimde OU,user.grup.computer, contact gibi nesneler oluşturmayı sağlar.

DSMOD.EXE : Önceden oluşturulmuş mevcut Active Directory Objeleri üzerinde degisiklik yapar.

DSMOVE.EXE : Active Directory objelerini baska konumlara tasir ya da objelerin isimlerini değistirmeyi sağlar.

DSRM.EXE : Active directory içerisindeki objeleri siler.

DSQUERY.EXE : Kontrol amaçlı kullanılan komuttur. Fonksiyonu, belirtilen niteliklere (attribute) uyan objeleri sorgular ve listelemeyi sağlar.

DSGET.EXE : Kontrol amaçlı kullanılan komuttur. Fonksiyonu, nitelikleri belirtilen bir objenin ozelliklerini getirir.

DSADD

Active Directory icerisinde belirtilen konumda, belirtilen isimde OU,user.grup.computer, contact gibi nesneler oluşturmayı sağlar. DSADD komutları :

dsadd computer : Bilgisayar hesabı oluşturmak için kullanılır.
dsadd contact : Contact hesabı oluşturmak için kullanılır.
dsadd group : Grup hesabı oluşturmak için kullanılır.
dsadd ou : Organizational Unit oluşturmak için kullanılır.
dsadd user : Kullanıcı hesabı oluşturmak için kullanılır.
dsadd quota : Active directory içerisindeki directory partition için kota(quato) tanımlaması yapmak için kullanılır.

Bu komutlarla ilgili komut satırından detaylı yardım almak için yapmanız gereken “dsadd /?” komutunu kullanmanızdır. Örneğin “dsadd user /?” size kullanıcı oluşturmakla ilgili parametreleri getirir.

Komut Dizimleri:

DSADD USER [-samid ] [-upn ] [-fn ] [-mi ] [-ln ] [-display ] [-empid ] [-pwd { *}] [-desc ] [-memberof ] [-office ] [-tel ] [-email ] [-hometel ] [-pager ] [-mobile ] [-fax ] [-iptel ] [-webpg] [-title ] [-dept ] [-company ] [-mgr ] [-hmdir ] [-hmdrv ] [-profile ] [-loscr ] [-mustchpwd {yes no}] [-canchpwd {yes no}] [-reversiblepwd {yes no}] [-pwdneverexpires {yes no}] [-acctexpires ] [-disabled {yes no}] [{-s -d }] [-u ] [-p { *}] [-q] [{-uc -uco -uci}]

DSADD OU [-desc ]
[{-s -d }] [-u ]
[-p { *}] [-q] [{-uc -uco -uci}]

DSADD GROUP [-secgrp {yes no}] [-scope {l g u}]
[-samid ] [-desc ] [-memberof ] [-members ] [{-s -d }] [-u ] [-p { *}] [-q] [{-uc -uco -uci}]


DSADD COMPUTER [-samid ] [-desc ] [-loc ] [-memberof ] [{-s -d }] [-u ] [-p { *}] [-q] [{-uc -uco -uci}]

DSADD CONTACT [-fn ] [-mi ]
[-ln ] [-display ] [-desc ]
[-office ] [-tel ] [-email ] [-hometel ] [-pager ] [-mobile ] [-fax ] [-iptel ] [-title ] [-dept ] [-company ] [{-s -d }] [-u ] [-p { *}] [-q] [{-uc -uco -uci}]


Öncelikle uygulamalara başlamadan şu anki yapımızın şekli aşağıda görülmektedir. Domain adımız mayasoft.com.tr ve şu an ilk kurulum anındaki gibi sadece default objeler gelmiş.

Bundan sonraki bütün uygulamaları komut satırından yapacağız ve sonuçları grafiksel arayüzden control edeceğiz.Dolayısıyla öncelikle Start menüden Run’a gelin ve CMD.EXE yazarak komut satırını açın.

Uygulama 1:

mayasoft.com.tr domaini içerisinde egitim isimli bir OU oluşturalım ve tanımlama bilgisi olarak da “Mayasoft Bilgi Teknolojileri Eğitim Merkezi” yazalım:

Dsadd ou “ou=egitim,dc=mayasoft,dc=com,dc=tr” –DESC “MAYASOFT BİLGİ TEKNOLOJİLERİ EĞİTİM MERKEZİ”

Yukarıdaki satırı yazıp Enter tuşuna basınca eğer sorun yoksa işlemin başarılı bir şekilde gerçekleştiğini belirten aşağıdaki mesaj karşınıza çıkacaktır:

dsadd succeeded:ou=egitim,dc=mayasoft,dc=com,dc=tr

Şimdi gidip Active Directory Users and Computers içerisine baktığımızda eğitim isimli bir OU ve onun Description tanımlamasına da MAYASOFT BİLGİ TEKNOLOJİLERİ EĞİTİM MERKEZİ geldiğini göreceksiniz.



Uygulama 2:

mayasoft.com.tr domainindeki egitim isimli bir OU içerisinde betul isimli bir kullanıcı oluşturalım.

Dsadd User “cn=betul,ou=egitim,dc=mayasoft,dc=com,dc=tr”

Fakat bu şekilde bir kullanımda kullanıcı hesabı otomatik olarak Disabled bir biçimde geliyor. Bunun nedeni Windows 2003 active directory yapısında default olarak kullanıcılara en az 7 karakter ve kompleks şifre tanımlaması yapılması gerektiği uyarısıdır. Dolayısıyla ya gidip Domain Security Policy içerisindeki Password Policy’den bu kısıtlama ve zorunluluğu kaldıracaksınız ya da kullanıcı hesabını oluştururken belirtilen kriterlere uyan şifre vermemiz gerekiyor. Aksi halde yine Active Directory Users and Computers içerisinden bakarsanız kullanıcı hesabının Disable olarak geldiğini göreceksiniz.

Şimdilik grafikselden bu kullanıcı hesabını silin ve enable olarak açalım. Bunun için aşağıdaki komutu uygulayalim:

Dsadd User “cn=betul,ou=egitim,dc=mayasoft,dc=com,dc=tr” –pwd 123+abc

Artık gidip baktığımızda başarılı bir şekilde kullanıcı hesabının açıldığını göreceksiniz.

Uygulama 3:

mayasoft.com.tr domainindeki egitim isimli bir OU içerisinde hayat isimli ve 123+abc şifreli bir kullanıcı oluşturalım, fakat kullanıcı disable olarak oluşsun.

Dsadd User “cn=hayat,ou=egitim,dc=mayasoft,dc=com,dc=tr” –pwd 123+abc –disabled yes

Uygulama 4:

mayasoft.com.tr domainindeki egitim isimli bir OU içerisinde Developer isimli bir grup oluşturalım.

Dsadd Group “cn=Developer,ou=egitim,dc=mayasoft,dc=com,dc=tr”

Dikkat ederseniz grubumuz default olarak Security grup tipinde ve Global olarak oluştu. –SCOPE parametresi ile Local ya da Universal grup da oluşturabilirsiniz. Tabii ki domain yapınız mixed ise Universal grup açamazsınız.

Uygulama 5:

Şimdi de DSAdd komutunu biraz daha fonksiyonel kullanarak mayasoft.com.tr domaininde toplu
halde OU,User ve Group açan bir toplu işlem dosyası (Batch File) yazalım ve bunu EKLE.BAT adıyla kaydedip çalıştıralım:

EKLE.BAT

dsadd ou "OU=Satis,DC=mayasoft,DC=com,DC=tr"
dsadd ou "OU=Pazarlama ve Finans,DC=mayasoft,DC=com,DC=tr"
dsadd ou "OU=TeknikServis,DC=mayasoft,DC=com,DC=tr"
dsadd ou "OU=Egitmen,DC=mayasoft,DC=com,DC=tr"
dsadd user "CN=Dilek,OU=Pazarlama ve Finans,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "CN=Fatma,Ou=Satis,DC=mayasoft,DC=com,DC=tr" -pwd 123+xyz
dsadd user "CN=Ayse,Ou=Satis,DC=mayasoft,DC=com,DC=tr" -pwd 123_abc
dsadd user "CN=Recep,Ou=Satis,DC=mayasoft,DC=com,DC=tr" -pwd 123-abc
dsadd user "CN=Burak,Ou=TeknikServis,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "CN=Ugur,Ou=TeknikServis,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "Cn=Mahmut,Ou=TeknikServis,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "CN=MesutAladag,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd Maya123
dsadd user "CN=YasinAsir,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd Maya_123
dsadd user "CN=VuralKoyustu,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd VkOY+123
dsadd user "CN=YusufIlme,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd yU_123A
dsadd user "CN=BahadirDogan,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd bAHA321
dsadd user "CN=TugayBilgin,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd 12_ttBil
dsadd user "CN=TanelTemel,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "CN=OguzKutlu,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd user "CN=KamilKaragollu,Ou=Egitmen,DC=mayasoft,DC=com,DC=tr" -pwd 123+abc
dsadd group "CN=Teknik Group,CN=users,DC=mayasoft,DC=com,DC=tr" -scope g
dsadd group "CN=Pazarlama ve Finans,CN=users,DC=mayasoft,DC=com,DC=tr" -scope g
dsadd group "CN=Satis,CN=users,DC=mayasoft,DC=com,DC=tr" -scope l
dsadd group "CN=Egitmenler,CN=users,DC=mayasoft,DC=com,DC=tr" -scope l

Uygulama 6:

Şimdi de DSAdd komutunu biraz daha fonksiyonel kullanarak mayasoft.com.tr domaininde toplu
halde 100 tane kullanıcı açalım.Fakat bunu batch dosyası ile değil FOR döngüsü ile DSADD USER komutunu beraber kullanarak yapalım.mayasoft.com.tr domaininde ogrenciler OU’su icerisinde ogrencı1’den ogrenci100’e kadar 100 kullanıcı hesabı açan ve hepsinin şifresini 123+abc olarak ayarlayan komut:

FOR /L %i in (1,1,100) DO DSADD USER "CN=OGRENCI%i,OU=OGRENCILER,DC=MAYASOFT,DC=COM,DC=TR"
-PWD 123+abc


Uygulama 7:

Şimdi de DSAdd komutunu biraz daha fonksiyonel kullanarak mayasoft.com.tr domaininde oluşturulacak kullanıcıları bir text dosyadan satır satır okutturup istediğimiz konumda açtıralım.Bunun için yine FOR döngü ile DSADD USER komutunu beraber kullanacağız. mayasoft.com.tr domaininde ogrenciler OU’su icerisine C: sürücüsünde oluşturulmuş ogrenci.txt dosyasındaki ogrencilere ait kullanıcı hesaplarını Egitim OU’su içerisine açan ve hepsinin şifresini 123+abc olarak ayarlayan komut:

FOR /F %i in (c:\ogrenci.txt) DO DSADD USER "CN=%i,OU=EGITIM,DC=MAYASOFT,DC=COM,DC=TR" -PWD 123+abc


HATIRLATMA:Windows 2003 işletim sistemi içerisinde eski NT versiyonlarından da hatırlayacağınız NET USER komutu halen vardır. Fakat genellikle size bunun yerine DSADD komutunu kullanmanızı tavsiye ediyoruz. Sırası gelmişken hemen NET USER komutunu birkaç örnekle anlatalım.

Komut Dizimi aşağıdaki şekildedir:

NET USER [username [password *] [options]] [/DOMAIN]
username {password *} /ADD [options] [/DOMAIN]
username [/DELETE] [/DOMAIN]

UYARI : Net User komutunu eğer DC bilgisayarı üzerinde kullanıyorsanız operasyonları direk domainde yapar. Fakat workgroup ortamında çalışan ya da domain’e üye olan bir bilgisayarda çalıştırıyorsanız default olarak işlemleri lokal bilgisayarda yapar. Dolayısıyla sonuçları Computer Management içerisindeki Local Users and Groups’dan ancak görebilirsiniz. Eğer domain’e üye olan bilgisayardan yapmak ve işlemi domain’de yapmak isterseniz net user komutunu /DOMAIN parametresi ile kullanmanız gerekir.

Şimdi de net user ile ilgili uygulamalar yapalım:

Net user
Mevcut kullanıcıları kolonlar halinde alfabetik olarak listeler.

Net user Bunan 123+abc /domain /add
Active Directory domaininde, Users kabı içerisine Bunan isimli şifresi 123+abc olan kullanıcı hesabını ekler.

Net user Bunan /domain /delete
Active Directory domainindeki Bunan isimli kullanıcı hesabını siler.

NET USER komutunu FOR döngü deyimiyle kullanarak da toplu kullanıcı açma işlemini yerine getirebilirsiniz. Şimdi bunlarla ilgili birkaç örnek verelim:
FOR /L %i in (1,1,50) DO NET USER Maya%i 123+abc /add

Active Directory domainine 1’den başlayıp birer birer artırarak 50’ye kadar yani Maya1’den Maya50’ye kadar şifresi 123+abc olan 50 adet kullanıcıyı tek bir komutla açtık.
FOR /L %i in (1,1,50) DO NET USER Maya%i /delete
Açtığımız 50 kullanıcıyı yine bir FOR döngüsü içerisinde tek komutla temizlemiş olduk.

FOR /F %i in (c:\mayausers.txt) DO NET USER %i 123+abc /add
C sürücüsündeki mayausers.txt içerisine girilmiş kullanıcı isimleri ile 123+abc şifreli kullanıcı hesaplarını oluşturur.

07 Eylül 2008

WSH (Windows Scripting Host) İle Active Directory’de Programlama

Visual Basic Script kodlarını kullanarak Active Directory içerisinde nesne oluşturma, silme, nesneler üzerinde değişiklikler yapma, nesneleri sorgulama, toplu halde nesneler açma gibi işlevleri yerine getirebilirsiniz.

RootDSE Nedir

RootDSE’nin amacı kullanıcı nesnesini Active Directory’ye bağlamak için gerekli tutamağı sağlamaktır. RootDSE’nin açılımı Root Directory Service Entry’dir. RootDSE objelerin ne yaptıklarını açıklar. Teknik olarak VBS’den daha ziyade WSH ile GetObject methodunu kullanarak Active Directory’ye bağlantıyı sağlar. Büyük organizasyonlarda RootDSE’yi root domain’e göre belirleyebilirsiniz. Normalde RootDSE o anda bulunulan domain’e ayarlıdır. Bütün bu söylediklerimizin özeti olarak RootDSE’nin active directory’nin ta kendisi olduğunu söylememiz yanlış olmaz.

ADSI Edit - Support Tool

RootDSE’nin ne yaptığına farklı bir perspektiften bakarsak, bunu bize en iyi açıklayacak araç Windows Server 2003 CD’si içerisindeki Support dizini içerisindeki Tools dizininden Windows Server Support Tool’lar kurulduktan sonra gelen ADSIEDIT aracıdır. ADSI, Active Directory içerisindeki kullanıcı ve bilgisayar gibi objelerin özelliklerini ve niteliklerini öğrenmek için gerekli grafiksel arayüzü sağlar. ADSIEDIT kullanarak Active Directory yapısındaki üç kabın içerisini görebilirsiniz.Bunlar:

Domain
Configuration
Schema

Biz bu kapların her birine partition(active directory database bölümleri) adını veriyoruz.

1 - RootDSE ‘den Domain adını çekmek

' RootDSE nesnesinden domain adını çeken kod.
Set objRootDSE = GetObject(ldap://RootDSE/)
strDomain = objRootDSE.Get("DefaultNamingContext")

Eğer mevcut domain adını görmek isterseniz yukarıdaki kodun en alt satırına aşağıdaki satırlardan birini yazın. Böylece domain adını çekip size bir mesaj kutusunda gösterecektir.

WScript.Echo strDomain ' Domain adını control etmek için test amaçlı konuldu

Veya

Msgbox(strDomain) ' Domain adını control etmek için test amaçlı konuldu

Not 1: Biz bu örnekte objRootDSE ve strDomain değişken isimlerini kullandık. Sizde kendinize uygun, kurallara uyan degisken isimlerini rahatça kullanabilirsiniz. Fakat tabii ki anlamlı değişkenler kullanmak en iyisidir.

Not 2: DefaultNamingContext RootDSE (Active Directory) ‘nin bir özelliğidir.

2 – Objelerin Oluşturulacağı Yerin(objContainer) Belirlenmesi

Set objContainer = GetObject("LDAP://" & strOUContainer)

Not 1: strOUContainer nesnelerin oluşturulacağı yeri gösteren son derece önemli bir değişkendir. Bu değişkenin değerini domain adınıza ve OU adına gore doğru bir biçimde ayarlamalısınız.

Not 2: "LDAP://" nesnenin oluşturulacağı hedef yerin active directory olduğunu söyler.

Şimdi uygulamalarla bunları görelim.

Uygulama 1: OU Olusturma

Notepad`i acin.
OUac.vbs isimli bir dosya olusturun.
Asagidaki kodlari bu dosya icine yazin.

Set oRoot = GetObject(ldap://rootDSE/)
Set oDomain = GetObject("LDAP://" & oRoot.Get("defaultNamingContext"))
Set oOU=oDomain.Create("organizationalUnit", "ou=maya")
oOU.Put "Description", "MAYASOFT Bilgi Teknolojileri Merkezi"
oOU.SetInfo

Yukarıdaki script kodunu yazıp çalıştırdıktan sonra bulunduğunuz domain altında maya isimli bir OU açar ve Description özelliğine MAYASOFT Bilgi Teknolojileri Merkezi ifadesini atar.

Uygulama 2: Kullanıcı Olusturma

Set oRoot = GetObject(ldap://rootDSE/)
Set oDomain = GetObject("LDAP://" & oRoot.Get("defaultNamingContext"))
Set oUser = oOU.Create("User", "cn=egitmen")
oUser.Put "sAMAccountName", " egitmen "
oUser.Put "Description", "Marka Olmus Uzman Egitmenler"
oUser.SetInfo
oUser.SetPassword "123+abc"
oUser.AccountDisabled = False
oUser.SetInfo
Wscript.Echo "Basariyla tamamlandi, Active Directory Users and Computers bakın!!!"

Yukarıdaki script kodunu yazıp çalıştırdıktan sonra bulunduğunuz domain altında egitmen isimli bir kullanıcı açar ve Description özelliğine Marka Olmus Uzman Egitmenler yazar. Burada SETINFO methodu onaylama amaçlı kullanılır. Setinfo satırına gelene kadar henüz obje oluşturulmaz. Setinfo satırı ile işleme onay verilir. SetPassword ile kullanıcı hesabına şifre atanır. AccountDisabled methodu ile kullanıcı hesabının enable mı yoksa disable mı olarak açılacağı belirlenir. Yapılan bu değişiklikler yine veritabanına yazılması ve güncellenmesi için setinfo methodu ile onaylanmıştır. Wscript.Echo ile işlem tamamlandıktan sonra bir mesaj görüntüleme gerçekleştirilmiş oluyor.

Uygulama 3: Toplu Kullanıcı Olusturma

'TOPLUM OU’su içerisine toplu kullanıcı ekleme

'Mesut Aladağ – Yasin Aşır tarafından yazılmış script
Dim nesneOUSet oRoot = GetObject(ldap://rootDSE/)
Set oDomain = GetObject("LDAP://" & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject(ldap://rootDSE/)
Set nesneOU=oDomain.Create("organizationalUnit", "ou=Toplum")
nesneOU.Put "Description", "Mesut Aladağ – Yasin Aşır Yazdı…"
nesneOU.SetInfo
Set nesnekap= GetObject("LDAP://OU=Toplum," & _objRootDSE.Get _("defaultNamingContext"))
For i = 1 To 10
Set nesnetip=nesnekap.Create("User", "cn=Kullanici" & i)
nesnetip.Put "sAMAccountName", "Kullanici" & i
nesnetip.SetInfo
Next
WScript.Echo "Tebrikler, 10 Kullanıcı açıldı F5 basarak güncelleyin"

Yukarıdaki kod çalıştırılınca once domain altında Toplum isimli bir OU açar. Daha sonra bu OU içerisine kullanıcı1’den kullanıcı 10’a kadar 10 adet kullanıcı oluşturur.

VBScript Kullanarak Satis OU’su içerisine Kullanıcı Ekleme

Bu örnekte, VBScript kullanarak Satis OU’su içerisine yeni bir kullanıcı eklemeyi öğreneceksiniz. Bu örnek ADSI ve VBScript ile active directory’de programlamanın kolaylığı ve rahatlığını göreceksiniz.Bu örnekte biz kullanıcının sadece belli özelliklerini tanımladık.Siz arzu ederseniz tüm özelliklerini tanımlayabilirsiniz.

NotePad’i açın ve aşağıdaki kodu yazıp, UserAC.vbs adı ile kaydedin ve çalıştırın.

Set oRoot = GetObject("LDAP://rootDSE")
Set oDomain = GetObject("LDAP://ou=satis," & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject("LDAP://rootDSE")
Set oUser=oDomain.Create("User", "CN=Feyzo")
oUser.Put "samAccountName","Feyzo"oUser.Put "givenName","Feyzo"
oUser.Put "sn","Kibar"
oUser.Put "userPrincipalName",feyzok@mayasoft.com.tr
oUser.SetInfo
Set oUser = Nothing 'oUser değişkenini siliyor.
Set oDomain = Nothing ' oDomain değişkenini siliyor.
WScript.Echo "Tamamlandı"

Yukarıdaki kodu çalıştırdığınızda active directory içerisindeki satış OU’su içerisine Feyzo isimli bir kullanıcı hesabının eklendiğini göreceksiniz.

VBScript Kullanarak Kullanıcı Silmek

Bu örnekte, VBScript kullanarak Satis OU’su içerisindeki feyzo isimli kullanıcı hesabını silmeyi öğreneceksiniz.

NotePad’i açın ve aşağıdaki kodu yazıp, UserSIL.vbs adı ile kaydedin ve çalıştırın.

Set oRoot = GetObject("LDAP://rootDSE")
Set oDomain = GetObject("LDAP://ou=satis," & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject("LDAP://rootDSE")
oDomain.Delete "User", "CN=Feyzo"
Set oDomain = Nothing 'oContainer değişkenini siliyor.
WScript.Echo "Tamamlandı"

VBScript Kullanarak Toplu Olarak Kullanıcı Özelliklerini Değiştirme

Bu örnekte, VBScript kullanarak Satis OU’su içerisindeki bütün kullanıcı hesaplarının adres bilgilerinde güncellemeler yapacağız.

NotePad’i açın ve aşağıdaki kodu yazıp, UserDegistir.vbs adı ile kaydedin ve çalıştırın.

Set oRoot = GetObject("LDAP://rootDSE")
Set oDomain = GetObject("LDAP://ou=satis," & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject("LDAP://rootDSE")
ModifyUsers oDomain
Set oDomain = Nothing 'oContainer değişkenini siliyor.
WScript.Echo "Tamamlandı"

Sub ModifyUsers(oObject)
Dim oUser
oObject.Filter = Array("user")
For Each oUser in oObject
oUser.Put "st","Beşiktaş"
oUser.Put "streetAddress","Barbaros Blv. No:9"
oUser.Put "postalCode","80690"
oUser.Put "l","Beşiktaş"
oUser.SetInfo
Next
End Sub

Gidip Active Directory Users and Computers içerisinden baktığınızda aşağıdaki gibi oluştuğunu göreceksiniz.

VBScript Kullanarak Objeleri Export Etmek

Bu örnekte, VBScript kullanarak Satis OU’su içerisindeki bütün kullanıcı hesapları ve bunların niteliklerini bir text dosyaya listelemeyi göreceksiniz.

NotePad’i açın ve aşağıdaki kodu yazıp, RaporAl.vbs adı ile kaydedin ve çalıştırın.

Dim OutPutFile
Dim FileSystemSet oRoot = GetObject("LDAP://rootDSE")
Set oDomain = GetObject("LDAP://ou=satis," & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject("LDAP://rootDSE")
Set FileSystem = WScript.CreateObject("Scripting.FileSystemObject")
Set OutPutFile = FileSystem.CreateTextFile("c:\rapor.txt", True)
EnumerateUsers
oDomainOutPutFile.Close
Set FileSystem = NothingSet
oDomain = Nothing 'oDomain değişkenini siliyor.
WScript.Echo "Tamamlandı"
WScript.Quit(0)
Sub EnumerateUsers(oCont)
Dim oUser
For Each oUser In oCont
Select Case LCase(oUser.Class)
Case "user"
If Not IsEmpty(oUser.distinguishedName) Then
OutPutFile.WriteLine "dn: " & oUser.distinguishedName
End If
If Not IsEmpty(oUser.name) Then
OutPutFile.WriteLine "name: " & oUser.Get ("name")
End If
If Not IsEmpty(oUser.st) Then
OutPutFile.WriteLine "st: " & oUser.st
End If
If Not IsEmpty(oUser.streetAddress) Then
OutPutFile.WriteLine "streetAddress: " & oUser.streetAddress
End If
Case "organizationalunit" , "container"
EnumerateUsers oUser
End Select
OutPutFile.WriteLine
Next
End Sub


WSH Kullanarak Grup Hesabı Oluşturmak

Set oRoot = GetObject(ldap://rootDSE/)
Set oDomain = GetObject("LDAP://" & oRoot.Get("defaultNamingContext"))
Set oGroup = oDomain.Create("Group", "cn=Patronlar")
oGroup.Put "sAMAccountName", " Patronlar "
oGroup.SetInfo
Wscript.Echo " Tebrikler Basariyla tamamlandi”

Yukarıdaki script kodunu yazıp çalıştırdıktan sonra bulunduğunuz domain altında Patronlar isimli bir grup açar.

Script İle Bilgi Toplama:

Kullanıcı adını , bilgisayar adını ve çalıştığınız domain adını veren script:

Set ad = WScript.CreateObject("WScript.Network")
WScript.Echo "Computer Name = " & ad.ComputerName & VBCrLf _& "User Name = " & ad.UserName & VBCrLf & "Domain = " & ad.UserDomain

Not 1: VBCrLf alt satıra geçmeyi sağlar.
Not 2: Alt çizgi (Underscore(_)) kod yarıda kalınca ikinci satırdan devam etmeyi sağlar.