May 31

Script konusundaki makalelerin üçüncüsü ile script konusunu tamamlamayı düşünüyorum. Active Directory scriptlerinin amacı tipik yönetim işlemlerine yardımcı olmaktır. Belki daha kolay yapmaktır. Ancak yine de yönetime biraz programcı açısından bakmak gerekebilir. Örneğin kullanıcıları bir yerden transfer etmek ve yaratmak gibi.

Administrative Script’ler

Belli yönetim işlemleri (administrative tasks) scriptler aracılığıyla yapılır.

Örnek:

  • Kullanıcı, grup, OU ve diğer Active Directory bileşenlerini yaratmak, değiştirmek ve silmek.
  • Bilgisayarları yapılandırmak.
  • Dosyaları, klasörleri ve diskleri yönetmek.
  • ……….

Windows Server 2003 ailesinde iki script ortamı vardır:

  • Komut işleyici
  • Windows Script Host (WSH)

Komut işleyici (command processor) komutları içeren dosyaları çalıştırır. Batch dili olarak da adlandırılan bu yöntemde belli komutlar kullanıldığı için kısıtlıdır. Ancak eski işletim sistemleri tarafından da desteklenmektedir.

Windows Script Host, scriptlerin çalışması için bir ortam yaratır. Diğer bir değişle değişik script dillerini destekleyen script enginidir. JScript ve VBScript’i destekler.

Örneğin VBScript ya da Jscript komutları Active Directory Service Interfaces (ADSI) verilerine erişerek nesneleri yönetilmesini. Ayrıca Management Instrumentation (WMI) ile iletişim kurarak da sistem kaynaklarına erişmeyi sağlar.

İki script dilinin yanı sıra WSH iki programı da destekler: WScript.exe ve CScript.exe.

Active Directory’ye erişmek kullanılan yapı:

Set objOU = GetObject(LDAP://OU=ornek,dc=ceyhun,dc=com)

Bilgisayar kaydı eklemek:

‘ yeni bilgisayar kaydi yaratmak

dim biladi

biladi = inputbox(“bilgisayar adini girin”)

Set objRootDSE = GetObject(“LDAP://rootDSE”)

Set objContainer = GetObject(“LDAP://cn=Computers,” & _

    objRootDSE.Get(“defaultNamingContext”))

Set objComputer = objContainer.Create _

    (“Computer”, “cn=” & biladi)

objComputer.Put “sAMAccountName”, biladi & “$”

objComputer.SetInfo

 

Diğer bir örnek:

Dim biladi

Dim ouadi

biladi = inputbox(“bilgisayar adı”)

ouadi = inputbox(“OU adi”)

Set objou = GetObject(“LDAP://dc=ceyhun,dc=com”)

Set objcomputer = objOU.Create(“computer”,”cn=” & biladi,”cn=”, ouadi )

objComputer.Put “saMAccountName”, “biladi”

objComputer.SetInfo

Kullanıcı hesabı yaratmak (1):

‘yeni kullanıcı yaratmak

dim kullanici

kullanici = inputbox (“yaratacaginiz kullanici”)

Set objou = GetObject(“LDAP://OU=satisOU,dc=ceyhun,dc=com”)

set objuser = objou.Create(“user”,”cn=” & kullanici)

objuser.put  “saMAccountName”, kullanici

objuser.setinfo

objuser.accountdisabled = false

objuser.setinfo

Kullanıcı hesabı yaratmak (2):

Dim kullanici

kullanici= inputbox(“Kullanıcı Adını Girin?”)

Set objOU = GetObject(“LDAP://OU=ornek,dc=ceyhun,dc=com”)

Set objUser = objOU.Create(“User”,”cn=” & kullanici)

objUser.Put “sAMAccountName”, kullanici

objUser.SetInfo

Kullanıcı hesabı yaratmak (3):

set nesne=getobject (“LDAP://dc=ege, dc=ceyhun, dc=com”)

set kullanici = nesne.create(“user”,”cn=ceyhun”)

kullanici.put “sAMAccountName”, “ceyhun”

kullanici.SetInfo

REM nesne adlarının büyük-küçük harf olması önemli!!!

Kullanıcı hesabı yaratmak (Ekrandan istemeden):

Set objOU = GetObject(“LDAP://OU=ceyhunOU,dc=ceyhun,dc=com”)

Set objUser = objOU.Create(“User”, “cn=ornek2″)

objUser.Put “sAMAccountName”, “ornek2″

objUser.SetInfo

 Kullanıcı password’ünü değiştirmek:

 Set objUser = GetObject _

    (“LDAP://cn=ceyhun,ou=ceyhunOU,dc=ceyhundc=com”)

objUser.ChangePassword “Password100″, “Password100WKG”

 

Kullanıcı hesabını Enable etmek:

Set objUser = GetObject (“LDAP://cn=ornek2,ou=ceyhunOU,dc=ceyhun,dc=com”)

objUser.AccountDisabled = FALSE

objUser.SetInfo

 Kullanıcının password’ünü değiştirmek:

 Set objUser = GetObject _

    (“LDAP://cn=ali,ou=muhasebe,dc=ceyhun,dc=com”)

objUser.ChangePassword “Ax15YZxc”, “AliPassword100″

 

Toplu kullanıcı kaydı oluşturmak:

İşci1′den başlamak üzere n tane İşçi kullanıcı kaydı oluşturmak için:

Set objRootDSE = GetObject(LDAP://rootDSE)

Set objContainer = GetObject(“LDAP://cn=Users,” & _

    objRootDSE.Get(“defaultNamingContext”))

For i = 1 To 50

    Set objLeaf = objContainer.Create(“User”, “cn=Isci” & i)

    objLeaf.Put “sAMAccountName”, “Isci” & i

    objLeaf.SetInfo

Next

WScript.Echo “50 kullanici kaydi yaratilmistir”

 

Grup hesapları:

Bir Global group yaratmak:

Set objOU = GetObject(“LDAP://OU=FC-OU1,dc=ceyhun,dc=com”)

Set objGroup = objOU.Create(“Group”, “cn=muhasebeciler”)

objGroup.Put “sAMAccountName”, “muhasebeciler”

objGroup.SetInfo

Grup hesabını silmek:

Set objOU = GetObject(“LDAP://ou=istanbulOU,dc=ceyhun,dc=com”)

objOU.Delete “group”, “muhasebe”

OU ile ilgili scriptler:

Bir OU yaratmak:

Set objDomain = GetObject(“LDAP://dc=ceyhun,dc=com”)

Set objOU = objDomain.Create(“organizationalUnit”, “ou=Muhasebe”)

objOU.SetInfo

OU Silmek:

Set objDomain = GetObject(LDAP://dc=ceyhun,dc=com)

objDomain.Delete “organizationalUnit”, “ou=Satis”

Bilgisayar (Computer) hesabıyla ilgili scriptler:

Bilgisayar kaydı yaratmak:

Set objCompt = _

    GetObject(“LDAP://cn=Computers,dc=ceyhun, dc=com”)

Set objComptCopy = objCompt.Create(“computer”, “cn=ceyhunpc”)

objComptCopy.Put “sAMAccountName”, “ceyhunpc”

objComptCopy.SetInfo

Bilgisayar kaydını silmek:

strComputer = “bilgisayar01″

set objComputer = GetObject(“LDAP://CN=” & strComputer & _

                            “,CN=Computers,DC=ceyhun,DC=com”)

objComputer.DeleteObject (0)

Bilgisayarı diğer bir OU’ya taşımak:

Set objNewOU = GetObject(“LDAP://OU=FC-OU1,DC=ceyhun,DC=com”)

Set objMoveComputer = objNewOU.MoveHere

    (“LDAP://CN= bilgisayar01,CN=FC-OU2,DC=ceyhun ,DC=com”, “CN=bilgisayar01″)

Microsoft Excel üzerinde kod yazarak Active Directory nesnesi yaratmaya bir diğer örnek:

Sub Dügme1_Tiklat()

Dim kullanici

For i = 1 To 7

kullanici = Sheets(“sayfa1″).Cells(i, 2).Value & Mid(Sheets(“sayfa1″).Cells(i, 1).Value, 1, 1)

‘ soyadi , arti adinin ilk karakteri

kullanici = Sheets(“sayfa1″).Cells(i, 1).Value

‘ adi

Set nesne1 = GetObject(“LDAP://ou=emin,dc=fc,dc=com”)

Set nesne2 = nesne1.create(“user”, “cn=” & kullanici)

nesne2.put “samaccountname”, kullanici

nesne2.SetInfo

Next

End Sub

Yukarıdaki kod içinde:  

Kullanılan deyim:

Sheets (sayfa).Cells (satir, sütun)

İkinci sütundan Soyadını almak için:

Sheets(“sayfa1″).Cells(i, 2).Value

Birinci sütundan adının ilk karakterini almak için:

Mid(Sheets(“sayfa1″).Cells(i, 1).Value, 1, 1)

Kodu düzenlemek için; Excel ortamında Forms (Formlar) araç çubuğu aracılığıyla bir düğme çalışma ortamına eklenir. Ardından Assign Macro (Makro Ata) iletişim kutusu aracılığıyla yeni (new) kod eklenir.

Umarım üç makaleden oluşan bu seride scriptlerle ilgili anlattığım konular yararlı olmuştur.

Yazar ceyhun çamlı \\ Etiketler:

7 Responses to “Active Directory Script’leri”

  1. 1
    okan Says:

    ceyhun bey iyi güzel olmuş elinize sağlık da bu sağ tuş kilidini neden bırakıyorsunuz. bari bu kadar bilişimin içinde olan birisi olarak yapmayın lütfen yani kopyalayıp kullanamıyacaksak boş yere siteye koymanızın anlamı yok bu sizin özgüveniniz konusunda endişelendirir insanları. Eski moda öğretmenler gibi bilişim çağında el ile yıllık ödev yazdıranlardansınız.

  2. 2
    ceyhun çamlı Says:

    Hayır bilişimin içinde olan herkesin rahatlıkla alabileceği seçenekler mevcut Okan Bey. Sadece biraz emek harcasın istiyorum insanlar sitedeki tüm içeriği ben öğrencilerime ya da isteyenlere zaten veriiyorum. Amacım paylaşım yapmak olmasa zaten böyle bir site oluşturup buraya yazmak için zaman harcamazdım. Ama klasik kopyala yapıştır yöntemleri dışında birşeyle uğrasmak zor geliyorsa (ki bundan dolayı ilk defa şikayetçi olan birisi olduğunu belirtmeden geçemiycem ) bunu kaldırmak benim için sorun olmayacaktır. Ama bu sitede gördüğünüz hiçbirşeyi el ile yazmanız gerekmez sadece view source seçeneği ile zaten istediğinizi alabilirsiniz.
    İyi çalışmalar.

  3. 3
    Betul Says:

    Merhabalar sizden
    bir yardım isteyecegim
    Bilgi işlem e yeni basladım
    MCSE kursuna gidiyrum
    Active Directory de
    kullanıcı properties kısmında
    general tabında ufak bir
    insan fotosu var onu
    degistirmem gerekiyor
    neler yaptıysam degismedi
    yardımalarınızı bekliyorum
    teskkurler

  4. 4
    Haber Says:

    harika bir site. bence ingilizce dil seçeneği de olmalı.

  5. 5
    Emre Says:

    sitenizde harika makaleler var. Bu makaleleri kaynak göstererek kullanabilir miyim?

  6. 6
    Bilal Bilaloglu Says:

    Ceyhun Bey selam sitenizi bircok konuda bana cok yardımcı oldu cok tesekkur ederim .
    Size sormak istedigim bir soru var Active Directoryde userların levellarını degistirebilecegimiz bir script yazabiliyormuyuz .
    ornegin Xsahsi mudur yardımcısı iken yeni gorev dagılımında mudur olması gibi
    ilginiz icin simdiden tesekkur ederim .

  7. 7
    ceyhun çamlı Says:

    Merhaba Bilal Bey;

    User Levellerından kastınız müdür yardımcısı pozisyonunda yer alan X için ünvan değişikliği mi yapmak itiyorsunuz yoksa müdür yardımcısı OU’sundan müdür OU’suna mı taşımak istiyorsunuz. İstediğinizi detaylı olarak açıklarsanız gerekli script’in yazılıp yazılamayacağını
    söyleyebilirim.

Leave a Reply