Forum
Selam,
Excelde hazırlanmış yaklaşık 250 adet e-mail contact bilgilerini (Ad, Soyad ve e-mail adres) içeren bir liste mevcut. Bu listedeki bilgileri exchange 2007 server'a nasıl import ederek ekleyebilirim.
İyi günler,
Merhaba
aşağıda ki linkten yararlanabilirsiniz. Ancak exchange 2007 en az sp1 olması gerekir. import-contact çaışabilmesi için.
http://www.thedailyadmin.com/2008/03/import-csv-contacts-exchange-2007.html
Teşekkür ederim.
merhabalar
başarılı sonuçlarınızı burada paylaşırsanız seviniriz.
kolay gelsin
Makaleyi okudum. Ancak planan contact import işlemi iptal oldu. Daha sonra böyle bir işlem olursa yapılan işlemler ve sonuçları hakkında bilgi vereceğim.
İyi günler..
teşekkürler
Arkadaşlar Merhaba,
Bu konuda daha önce 4800 adresi eklemek zorunda kaldığım için bir arkadaşımda internetten bulduğumuz bir script ve bilgiyi birlikte yeniden düzenleyerek hazırladığımız script ve excel dosyası ile EXC2003 ve EXC 2010 üzerinde denemiş ve sorunsuz ekleme işlemini gerçekleştirmiştik. Ben exchange 2003 üzerine eklemiştim, EXC 2010 üzerinde ihtiyacı olan başka bir arkadaşımla paylaştığımda deneyip oda olumlu sonuç almıştı denemenizi tavsiye ederim.
Özetle aşağıdaki gibi işlem gerçekleştirmiştik;
- Domain üzerinde root'ta Test ismi ile bir OU yaratınız (once buraya atsın sonra buradan contakları sonra başka ou'lara move edebilirsiniz)
- Scripti çalıstıracagınız makinada(server ise) büyük ihtimalle ms excel kurulu değildir yok ise kurunuz veya kurmak istemiyorsanız kendi sahsi bilgisayarınızı domain admin kullanıcısı veya AD'e admin olan bir kullanıcı hesabı ile logon olunuz.
- Scripti çalıstırdığınızda script bu excel file'ı açacak ve buradaki satırlardaki bilgilere göre tek tek AD contackt ları ekleyecektir ekleme işlemi bitince son satırıda ekledikten sonra otomatik olarak kapanacaktır.
Bundan sonra AD üzerindeki Test OU içerigini kontrol edebilirsiniz. Bu contacları istediğiniz başka bir alana taşıyabilirsiniz.
Not:
1. Excel file içindeki bilgilere ek olarak başka başlıklar alanlar eklemeniz gerekiyorsa eklediğiniz başlıkları hem excel'e hemde script içine uygun yerlere eklemeniz gerekmektedir.
2. Kullanıcı isimleri içinde . , ve boşluk gibi karakterler olmamalıdır. Bunların olduğu satırda script hata verip devam etmiyor bu satırı düzeltip bundan sonrasındaki kayıtlar için tekrar script'i çalıştırmanız gerekmektedir. Daha önce oluşturulan kayıtları Excel file içerisinden silerseniz iyi olur.
Contac sayısı çok fazla ise ve bütün contakları default global adrest list'te görmek firma içerisinde sorun yaratacak ise bunun içinde biraz uğraşmanız gerkecektir. Eğer ihtiyacınız olursa onuda nasıl çözdüğümü ayrıca yazarım.
Script içeriği aşağıdaki olduğu gibi alıp contactekle.vbs adında bir dosya oluşturup içerisine kopyalayınız ve kayıt edin.
'====================
If LCase(Right(Wscript.FullName, 11)) = "wscript.exe" Then
strPath = Wscript.ScriptFullName
strCommand = "%comspec% /k cscript """ & strPath & """"
Set objShell = CreateObject("Wscript.Shell")
objShell.Run(strCommand), 1, True
Wscript.Quit
End If
' Bind to Active Directory.
Set objRootLDAP = GetObject("LDAP://rootDSE")
' CONFIGURATION PARAMETERS FOR THE SCRIPT
' ***** CONTACTS *******
strExcelFile = Replace(WScript.ScriptFullName, WScript.ScriptName, "") & "ContactListesi.xls"
strContactOUPath = "OU=Test," & objRootLDAP.Get("defaultNamingContext")
' END CONFIGURATION PARAMETERS
Const xlUp = -4162
Const ADS_UF_DONT_EXPIRE_PASSWD = &H10000
Const ADS_PROPERTY_CLEAR = 1
Const ADS_PROPERTY_UPDATE = 2
Const ADS_PROPERTY_APPEND = 3
Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = True
objExcel.Workbooks.Open strExcelFile
Set objNetwork = CreateObject("WScript.Network")
strDomainName = objNetwork.UserDomain
For intRow = 2 To objExcel.ActiveSheet.Cells(65536, "A").End(xlUp).Row
strFirstName = Trim(objExcel.ActiveSheet.Cells(intRow, "A").Value)
strLastName = Trim(objExcel.ActiveSheet.Cells(intRow, "B").Value)
strFullName = Trim(objExcel.ActiveSheet.Cells(intRow, "C").Value)
strUserNameHeading = Trim(objExcel.ActiveSheet.Cells(1, "D").Value)
strUserName = Trim(objExcel.ActiveSheet.Cells(intRow, "D").Value) & strUserNameHeading
strEmail = Trim(objExcel.ActiveSheet.Cells(intRow, "E").Value)
strDescription = Trim(objExcel.ActiveSheet.Cells(intRow, "F").Value)
strAlias = strFirstName & strLastName
strOffice = Trim(objExcel.ActiveSheet.Cells(intRow, "G").Value)
strMobile = Trim(objExcel.ActiveSheet.Cells(intRow, "H").Value)
strTitle = Trim(objExcel.ActiveSheet.Cells(intRow, "I").Value)
strDepartment = Trim(objExcel.ActiveSheet.Cells(intRow, "J").Value)
strCompany = Trim(objExcel.ActiveSheet.Cells(intRow, "K").Value)
strAddress = Trim(objExcel.ActiveSheet.Cells(intRow, "L").Value)
strCity = Trim(objExcel.ActiveSheet.Cells(intRow, "M").Value)
strState = Trim(objExcel.ActiveSheet.Cells(intRow, "N").Value)
strZipCode = Trim(objExcel.ActiveSheet.Cells(intRow, "O").Value)
strCountry = Trim(objExcel.ActiveSheet.Cells(intRow, "P").Value)
strHomePhone = Trim(objExcel.ActiveSheet.Cells(intRow, "Q").Value)
'strFirstName = Trim(Left(strFullName, InStrRev(strFullName, " ") - 1))
'strLastName = Trim(Mid(strFullName, InStrRev(strFullName, " ") + 1))
If strFullName <> "" And strUserName <> "" Then
WScript.Echo "About to create:" & VbCrLf &_
strFullName & VbCrLf &_
strFirstName & VbCrLf &_
strLastName & VbCrLf & _
strUserName & VbCrLf &_
strPassword & VbCrLf &_
"LDAP://" & strContactOUPath
' This will add the user to eg. Domain.Local\Users
Set objContainer = GetObject("LDAP://" & strContactOUPath)
'
Set objContactsContainer = GetObject("LDAP://" & strContactOUPath)
' Check if the contact already exists
On Error Resume Next
Set objNewContact = GetObject("LDAP://cn=" & strFullName & "," & strContactOUPath)
If Err.Number = 0 Then
WScript.Echo "Contact " & strFullName & " already exists."
On Error GoTo 0
Else
Err.Clear
On Error GoTo 0
' Build the actual Contact.
Set objContact = objContactsContainer.Create("Contact","cn=" & strFullName)
objContact.Put "Mail", strEmail
objContact.Put "givenName", strFirstName
objContact.Put "sn", strLastName
objContact.Put "mailNickname", Cstr(strAlias)
objContact.Put "targetAddress", "SMTP:" & strEmail
On Error Resume Next
objGroup.PutEx ADS_PROPERTY_CLEAR, "proxyAddresses", 0
objContact.SetInfo
On Error GoTo 0
objContact.PutEx ADS_PROPERTY_APPEND, "proxyAddresses", Array("SMTP:" & strEmail,"SMTP:" & strAlias & "@" & Mid(Replace(objRootLDAP.Get("defaultNamingContext"), "DC=", "."), 2))
objContact.SetInfo
If strOffice <> "" Then objContact.Put "physicalDeliveryOfficeName", strOffice
If strDescription <> "" Then objContact.Put "description", strDescription
If strMobile <> "" Then objContact.Put "mobile", strMobile
If strTitle <> "" Then objContact.Put "title", strTitle
If strDepartment <> "" Then objContact.Put "department", strDepartment
If strCompany <> "" Then objContact.Put "company", strCompany
If strAddress <> "" Then objContact.Put "streetAddress", strAddress
If strCity <> "" Then objContact.Put "l", strCity
If strState <> "" Then objContact.Put "st", strState
If strZipCode <> "" Then objContact.Put "postalCode", strZipCode
' ISO Country Code list: http://www.iso.org/iso/english_country_names_and_code_elements
If strCountry <> "" Then objContact.Put "c", strCountry
If strHomePhone <> "" Then objContact.Put "homePhone", strHomePhone
objContact.SetInfo
WScript.Echo "Contact " & strAlias & " created."
End If
End If
Next
WScript.Echo "Done"
objExcel.ActiveWorkbook.Close False
objExcel.Quit
Set objExcel = Nothing
'=========================
Excel File içeriği ContactListesi.xls (bu onemli scrip içinde bu dosya adı geciyor ve script bu dosyayı yanında arayacak) isminde bir file oluşturup içerisini aşağıdaki gibi doldurunuz. FirsName A1'de olmalı, eklenecek bilgileride alt alta eklerseniz buradaki verdiğiniz bilgiler dahilinde oluşturulan contact içerisine bu eklemeler yapılıyor.
FirstName
Last Name
Full Name
User Name
Email
Description
Office
Mobile
title
Department
Recep
YUKSEL
Recep YUKSEL
Recep.YUKSEL
[email protected]
AcıklamaBolumu
AnkaraMerkez
90 530 555 5555
Sistem Destek Uzmanı
Bilgi Teknolojileri
Eğer imkan bulup test edebilirseniz testleriniz sonrası EXC 2007'de nasıl bir sonuç aldığınızı öğrenmek isterim.
Saygılarımla.
************************************************************
Probleminiz çözüldüğünde sonucu burada paylaşırsanız,
sizin ile aynı problemi yaşayanlar için yardım etmiş olursunuz.
Eğer sorununuz çözüldü ise "çözüldü" olarak işaretlerseniz
diğer üyeler için çok büyük kolaylık sağlayacaktır.
************************************************************