dani
Goto Top

Per VBA Adressbücher in Öffentlichen Ordnern als Adressbuch im Outlook 2003 registrieren

Hallo zusammen,
wer kennt das nicht...man hat einige 100 oder sogar 1000 Benutzer in einem Netzwerk und immer mal wieder muss ein Outlookprofil gelöscht werden und neu angelegt werden. Wir haben z.B. etliche Adressbücher über Öffentliche Ordner realsiert, da mehrere Mitarbeiter die selben Kontakte haben. Wir haben uns dazu einen kl. Automatismus geschrieben.

Und zwar basiert das Ganze eigentlich VBS (VBScripting) das bei uns unter WindowsXP Professional (SP3) und Exchange 2003 (SP2) ohne Probleme läuft:
Dim objOutlook, objOeffordner, objItems

Set objOutlook = CreateObject("Outlook.Application")  

Set objOeffordner = objOutlook .GetNamespace("MAPI").Folders.Item("Öffentliche Ordner").Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Kontakte").Folders.Item("RZ FRA")  
Set objItems = objOeffordner.Items
objOeffordner.showAsOutlookAB = True
In Zeile 3 gebt ihr einfach den kompletten Verzeichnispfad nacheinander zum Ziel an. Wichtig dabei ist, dass dieses Verzeichnis in den Öffentlichen Ordner auch als Typ "Adressbuch" angelegt worden ist.
In Zeile 5 wird eben festgelegt, ob das Adressbuch im Outlook des Benutzer angezeigt werden soll. Diese Option wird interessant, wenn sich die Struktur im Öffentlichen Ordner ändern soll. Dann muss vor dem Veränderung der Strutkur der Eintag entfernt werden.

Wir haben das Ganze über ein Anmeldescript (Batch) geregelt und haben für alle Öffentlichen (Adressbuch)Ordner ein solches Script auf dem NETLOGON - Verzeichnis der DCs liegen. Die Batchdatei schaut erstmal nach, ob für Outlook bereits ein Profil existiert. Falls dies der Fall ist wird das Script beendet. Da eigentlich alle Einstellungen getätigt worden sind. Anderen Falls wird über eine PRT-Datei das Outlookprofil erstellt und konfiguriert. Danach wird an Hand von der AD-Gruppenzugehörigkeit (ifmember.exe) die entsprechenden VBS-Dateien nacheinander einzeln gestartet. Somit werden alle Fälle abgedeckt.

Noch ein Tipp: Neue Struktur parallel aufbauen und neue VB-Scripte mit den neuen Pfaden erstellen und das Anmeldescript ergänzen bzw. die Abfragen eben anders gestalten. Somit wird zurest der alte Eintag entfernt und danach das neue Adressbuch eingebunden. Somit merken die Mitarbeiter nur, dass der Outlookstart ein wenig andauert. face-smile


Grüße,
Dani

Content-Key: 124248

Url: https://administrator.de/contentid/124248

Printed on: April 16, 2024 at 09:04 o'clock

Member: Seardan
Seardan Sep 08, 2009 at 12:53:18 (UTC)
Goto Top
Hallo,

vielen Dank für den Tipp. Ich werde das Script bestimmt bald ausprobieren!

Gruß Seardan
Member: TheEternalPhenom
TheEternalPhenom Sep 10, 2009 at 12:15:04 (UTC)
Goto Top
Ich hab mal ne kleine Frage als was deklarierst du die Objekte in Zeile 1???
Falls mich meine VBA-Kenntnisse nicht ganz verlassen haben dürfte die Dekleration mehrere Werte in einer Zeile eigentlich nicht mehr funktionieren.
Ich will dein Programm nicht iwi demontieren aber meine VBA-Kentnisse sind etwas, naja eingerostet, und da würd mich das schon mal interessieren.
Aber ansonsten nettes Script ich glaube das könnte man bei mir an der Schule auch gut gebrauchen.

mfg

duffman521
Member: Dani
Dani Sep 11, 2009 at 12:22:52 (UTC)
Goto Top
Moin,
du hast Recht...die 1. Zeile macht nur Sinn wenn auch "Option Explicit" in der allerersten Zeile steht. Somit können nur Variable benutzt werden die registiert sind. Ist eben wie bei C# oder Delphi.


Grüße,
Dani
Member: TheEternalPhenom
TheEternalPhenom Sep 11, 2009 at 13:26:14 (UTC)
Goto Top
Dann bin ich ja beruhig das meine VBA-Kenntnisse noch nicht all zu arg eingerostet sind. face-wink
Member: misterl
misterl Jan 28, 2016 at 15:27:09 (UTC)
Goto Top
Hallo,

hat jemand vielleicht ein aktuelleres VBA Script für Outlook 2013 oder 2016. Die automatische Verbindung eines Adressbuches aus dem öffentlichen Ordner wäre eine sehr nützliche Funktion.

Habe folgendes versucht, direkt im gestarteten Outlook 2016 und ALT+F11:

Dim objOutlook, objOeffordner, objItems
Set objOutlook = CreateObject("Outlook.Application")
Set objOeffordner = objOutlook .GetNamespace("MAPI").Folders.Item("Öffentliche Ordner").Folders.Item("Alle Öffentlichen Ordner").Folders.Item("Kontakte").Folders.Item("Technik-Adressbuch")
Set objItems = objOeffordner.Items
objOeffordner.showAsOutlookAB = True


Leider ohne Erfolg.

Danke für Eure Unterstützung
Beste Grüsse MisterL