VBS - Kontakte im ADS anlegen
Guten Mittag zusammen,
ich habe heute eine Textdatei bekommen, in der lauter Kontakte drin stehen die ich im Exchange - Globales Adressbuch veröffentlicht werden müssen. Bei den Kontaken handelt es sich um externe Adressen. Nun könnte ich per Hand anlegen, jedoch sind es ca. 200 Stück. Praktikannten haben wir leider im Moment keine da.
Wie kann ich nun per VBS Script einen Kontakt anlegen, die E-Mailadresse als Hauptadressemarkieren und Vor- & Nachnamen angeben. In welche OU die Kontakte erstellt werden sollen, soll vorher abgefragt werden.
Aufbau einer Textdatei ist sicher auch von nöten:
System: Windows 2003 EE + Exchange 2003 EE => ServicePack 2
Im vorraus vielen Dank & und einen schönen Männertag!
Update:
17.05.2007 12:09 Uhr
Also jetzt habe ich nach Stunden doch noch ein kl. VBScript gefunden:
Der Kontakt wird erzeugt. Jedoch wird nicht die angegebene E-Mailadresse genommen. Es wurde ein Exchange - Postfach angelegt mit der Exchange-Domäne.
Gruß
Dani
ich habe heute eine Textdatei bekommen, in der lauter Kontakte drin stehen die ich im Exchange - Globales Adressbuch veröffentlicht werden müssen. Bei den Kontaken handelt es sich um externe Adressen. Nun könnte ich per Hand anlegen, jedoch sind es ca. 200 Stück. Praktikannten haben wir leider im Moment keine da.
Wie kann ich nun per VBS Script einen Kontakt anlegen, die E-Mailadresse als Hauptadressemarkieren und Vor- & Nachnamen angeben. In welche OU die Kontakte erstellt werden sollen, soll vorher abgefragt werden.
Aufbau einer Textdatei ist sicher auch von nöten:
müller tab christoph tab ch.mueller@seinedomain.de
....
Im vorraus vielen Dank & und einen schönen Männertag!
Update:
17.05.2007 12:09 Uhr
Also jetzt habe ich nach Stunden doch noch ein kl. VBScript gefunden:
Set ou = GetObject("LDAP://ou=Benutzer,dc=firma,dc=de")
Set mailcontact = ou.Create("contact", "cn=Mail-Contact")
mailContact.mailNickName = "pfoeckeler-extern"
mailContact.displayName = "Föckeler, Philipp (Extern)"
mailContact.targetAddress = "philipp.foeckeler@cerrotorre.de"
mailcontact.SetInfo
Gruß
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 59212
Url: https://administrator.de/contentid/59212
Ausgedruckt am: 22.11.2024 um 20:11 Uhr
13 Kommentare
Neuester Kommentar
Hallo Dani!
Vielleicht kannst Du damit etwas anfangen:
http://www.msxfaq.net/code/makecontact.htm
Create a Contact in Active Directory
Grüße
bastla
[Edit] @Dani: Sorry, hatte Dein Edit noch nicht gesehen ... [/Edit]
Vielleicht kannst Du damit etwas anfangen:
http://www.msxfaq.net/code/makecontact.htm
Create a Contact in Active Directory
Grüße
bastla
[Edit] @Dani: Sorry, hatte Dein Edit noch nicht gesehen ... [/Edit]
Hallo Dani!
Die unsportliche Variante (vor allem, wenn es ein einmaliger Vorgang sein sollte) wäre ein Speichern der Excel-Datei als ".csv", aber an einem Feiertag darf's schon auch einmal ein Script sein:
Die "WScript.Echo"-Zeile dient natürlich nur der Demonstration - im Prinzip kannst Du dort gleich das Erstellen des Kontaktes durchführen.
Grüße
bastla
[Edit] Natürlich würde es mit einem "With XL.Worksheets(1)"-Block schöner aussehen, aber man muss es ja nicht gleich übertreiben ... [/Edit]
Die unsportliche Variante (vor allem, wenn es ein einmaliger Vorgang sein sollte) wäre ein Speichern der Excel-Datei als ".csv", aber an einem Feiertag darf's schon auch einmal ein Script sein:
Set XL = WScript.CreateObject("Excel.Application")
XL.Workbooks.Open "D:\Kontaktdaten.xls"
i = 1 'Zeilennummer der ersten Datenzeile
Do While XL.Worksheets(1).Cells(i,1).Value <> ""
Vorname = XL.Worksheets(1).Cells(i,1).Value
Zuname = XL.Worksheets(1).Cells(i,2).Value
email = XL.Worksheets(1).Cells(i,3).Value
Beschr = XL.Worksheets(1).Cells(i,4).Value
WScript.Echo Vorname & ", " & Zuname & ", " & email & ", " & Beschr
i = i + 1
Loop
XL.ActiveWorkbook.Saved = True
XL.Application.Quit
Grüße
bastla
[Edit] Natürlich würde es mit einem "With XL.Worksheets(1)"-Block schöner aussehen, aber man muss es ja nicht gleich übertreiben ... [/Edit]
Hallo Dani!
Noch eine Idee zum Eintragen der Mailadresse (aus dem etwas längeren Code bei http://www.msexchange.org/articles/Migrating-Contacts-Distribution-List ... abgeleitet):
Anstelle der Zeile mailContact.targetAddress = "philipp.foeckeler@cerrotorre.de" Deines Beispieles oben könntest Du noch
versuchen.
Grüße
bastla
Noch eine Idee zum Eintragen der Mailadresse (aus dem etwas längeren Code bei http://www.msexchange.org/articles/Migrating-Contacts-Distribution-List ... abgeleitet):
Anstelle der Zeile mailContact.targetAddress = "philipp.foeckeler@cerrotorre.de" Deines Beispieles oben könntest Du noch
Set objRecip = mailContact
objRecip.MailEnable "SMTP:" & "philipp.foeckeler@cerrotorre.de"
Grüße
bastla
Hallo Dani!
Könnte so gehen: Nach dem Einlesen der Zeile aus Excel (und nach dem Set ou=...)
Grüße
bastla
Könnte so gehen: Nach dem Einlesen der Zeile aus Excel (und nach dem Set ou=...)
emailExists = False
For Each adcontact In ou
If LCase(CStr(adcontact.mail)) = LCase(CStr(email)) Then
emailExists = True
Exit For
End If
Next
If Not emailExists Then
'anlegen: Set mailcontact = ou.Create(...
End If
Grüße
bastla