Forum

Windows Scripting H...
 
Bildirimler
Hepsini Temizle

Windows Scripting Host ile Active Directory üzerindeki kullanıcı bilgilerini değiştirme

3 Yazılar
3 Üyeler
0 Reactions
846 Görüntüleme
(@buraksekercioglu)
Gönderiler: 28
Trusted Member
Konu başlatıcı
 

Fortigate üzerinde Active Directory ile eşleştirme yaparken FSAE
yazılımının TÜRKÇE karakterli kullanıcı tanımlarında sorun çıkardığı bu
yüzden de kullanıcıların internet çıkışlarına izin vermediğini tespit
etmiştim.

Kullanıcı sayısının az olduğu sunucularda bu bilgileri manuel olarak
değiştirmek sorun olmayabilir ancak kullanıcı sayısı 100 ve üzerine
çıktığında çok zaman alacak bir işlem olacaktır.

Durum böyle olunca da; WSH script yapısı ile Active Directory de bulunan kullanıcıların isimlerindeki TÜRKÇE karakterleri kaldırarak İNGİLİZ alfabesine uygun hale getiren script kodunu yazdım.

Aşağıdaki kodları bir text editörüne alıp dosya ismini isimdegistir.vbs
olarak kaydettikten sonra scripti çalıştırmanız halinde program size
hangi OU üzerinde işlem yapacağınızı soracak ve o Organizasyon altındaki
tüm kullanıcı isimlerini otomatik olarak düzeltecektir.

  Set oRoot = GetObject("LDAP://rootDSE")
objOU = InputBox ("Çalışmak istediğiniz OU bilgisini girin","www.sekercioglu.eu")

Set oDomain = GetObject("LDAP://ou=" & ObjOU & "," & oRoot.Get("defaultNamingContext"))
Set objRootDSE = GetObject("LDAP://rootDSE")
OU = "OU=" & objOU & "," & oRoot.Get("defaultNamingContext")

a=ModifyUsers (oDomain)
Set oDomain = Nothing 'oContainer değişkenini siliyor.
Wscript.echo a & " Kullanıcı bilgisi güncellendi"
Function ModifyUsers(oObject)
Dim oUser
oObject.Filter = Array("user")
For Each oUser in oObject
eski=oUser.get ("name")
yeni=cevir(oUser.get ("name"))

oDomain.MoveHere "LDAP://CN=" & eski & "," &  OU, "cn=" & yeni
a=a+1
oUser.Put "st","SAMSUN"
oUser.Put "streetAddress","Hançerli Mh. Abbasağa SK. No:8"
oUser.Put "postalCode","55020"
oUser.Put "l","ILKADIM"
oUser.SetInfo
Next
ModifyUsers=a
End Function

function cevir(veri)
dim txt
for q=1 to Len(veri)
a=mid(veri,q,1)
if a="Ş" then a="S"
if a="ş" then a="s"
if a="İ" then a="I"
if a="ı" then a="i"
if a="Ğ" then a="G"
if a="ğ" then a="g"
if a="Ü" then a="U"
if a="ü" then a="u"
if a="Ö" then a="O"
if a="ö" then a="o"
if a="Ç" then a="C"
if a="ç" then a="c"
txt=txt & a
next
cevir=txt
txt=""
end function

 Kaynak: http://www.sekercioglu.eu/index.php/windows-scripting-host-ile-active-directory-uzerindeki-kullanici-bilgilerini-degistirme/

 

 
Gönderildi : 04/11/2010 16:21

(@doganbayraktar)
Gönderiler: 1392
Noble Member
 

Bilgilendirme için Teşekkürler       [Y]

 
Gönderildi : 04/11/2010 16:33

(@ugurdemir)
Gönderiler: 9886
Illustrious Member
 

Faydalı bir bilgi. Teşekkürler.

 
Gönderildi : 07/11/2010 04:54

Paylaş: