installer
Goto Top

Öffentlicher Ordner per Script als Outlook Adressbuch

Hallo,
bin gerade dabei einen Kunden von Tobit David zu Online Exchange umzuziehen.
Sind ca. 25 Postfächer auf 50 Geräten (jeder 1 x Desktop PC / 1 x Notebook).

Mails und Kalender sind drüben ... hab nur ein Problem bei den Kontakten / Adressbücher.

Als Adressbuch habe ich einen öffentlichen Ordner erstellt und diesen MANUELL im Outlook als Adressbuch hinzugefügt. face-smile

Habe jetzt gesehen das der Kunde sich über die Jahre hinweg ca. 20 Adressbücher angelegt hat, welche halt nach Projekten, Organisationen etc. sortiert sind.
Das ganze als Kontaktgruppen zu lösen ist keine Option, da die Mailadressen nicht immer alle gleichzeitig angesprochen werden sollen.

Ich hab auch keine Lust an 50 Geräte zu laufen und dort jeweils bei 20 öffentlichen Ordnern "als Outlook Adressbuch anzeigen" anzuhaken. face-smile

So bin ich auf folgendes Script gestoßen, welches ich für EINEN Ordner auch schon erfolgreich getestet habe:
(new-object -com "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(18).Folders.Item("MeinKontakteOrdner").ShowAsOutlookAB = $true    

Nun wollte ich Fragen ob jemand einen Platzhalter/Variable kennt damit der Befehl für ALLE Ordner gilt, egal wie Sie benannt sind. Nicht nur für den expliziten "MeinKontaktOrdner". Hat natürlich auch den Hintergrund, das wenn das Sekretariat ein neues Adressbuch dort anlegen sollte, nicht das Script erneut angepasst werden müsste.

Wenn dann noch jemand nen Befehl kennt, der mir das ganze auch als "Favorit" hinzufügt (damit das Adressbuch auch bei "Personen" auftaucht) wäre das ganze komplett face-smile

Würde das Script dann einfach als Logon Script per GPO in der Domäne verteilen.

Vielen Dank.

Content-ID: 7922884963

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

Ausgedruckt am: 24.11.2024 um 15:11 Uhr

7907292512
7907292512 22.07.2023 aktualisiert um 16:16:21 Uhr
Goto Top
Moin
Für alle Adressbücher der ersten Ebene
(new-object -com "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(18).Folders | ? DefaultItemType -eq 2 | %{  
    $_.ShowAsOutlookAB = $true
    $_.AddToPFFavorites()
}
Oder für rekursiv für alle Kontakte-Ordner
$root = (new-object -com "Outlook.Application").GetNamespace("MAPI").GetDefaultFolder(18)  
$recurse = {
     param($folder)
     if ($folder.DefaultItemType -eq 2){
        $folder.ShowAsOutlookAB = $true
        $folder.AddToPFFavorites()
     }
     $folder.Folders | %{&$recurse $_}
}
&$recurse $root
Gruß siddius
installer
installer 22.07.2023 um 16:15:59 Uhr
Goto Top
Woow, super. Vielen Dank für die schnelle Antwort. Habs getestet und funktioniert wie gewünscht.

Hättest du evtl. auch noch ne Idee um die dann den Favoriten hinzuzufügen?
7907292512
7907292512 22.07.2023 aktualisiert um 16:17:15 Uhr
Goto Top
Zitat von @installer:
Hättest du evtl. auch noch ne Idee um die dann den Favoriten hinzuzufügen?

Habe ich gerade noch oben hinzugefügt.
installer
installer 22.07.2023 um 16:24:37 Uhr
Goto Top
Super vielen Dank !!! Ich teste das nachher ... und geb Rückmeldung !!!
7907292512
7907292512 22.07.2023 aktualisiert um 16:27:44 Uhr
Goto Top
You're welcome. 🖖
installer
installer 22.07.2023 aktualisiert um 18:00:00 Uhr
Goto Top
Seltsam ... bei mir auf dem Test-Gerät bei einem anderen M365 Tenant hat der Befehl funktioniert.

Bei einem Client des Kunden bekomm ich in der Powershell folgendes zurück:

Der Wert liegt außerhalb des erwarteten Bereichs.
In Zeile:3 Zeichen:5
+     $_.AddToPFFavorites()
+     ~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : OperationStopped: (:) [], ArgumentException
    + FullyQualifiedErrorId : System.ArgumentException


... Adressbuch ist angehakt, zu den Favoriten bekommt er es nicht hinzugefügt.

Zufällig ne Ahnung woran das liegen könnte?
7907292512
7907292512 23.07.2023 aktualisiert um 08:01:32 Uhr
Goto Top
Zufällig ne Ahnung woran das liegen könnte?
  • Ordner schon in den Public Folder Favorites hinterlegt? Dann musst du vorher prüfen ob schon vorhanden und nur dann hinzufügen wenn nicht vorhanden.
  • Fehlende Berechtigungen?
installer
installer 23.07.2023 um 10:00:54 Uhr
Goto Top
nein, in den Public Folder Favorites ist noch nichts hinterlegt.

Habe das ganze nun bei einem zweiten Client versucht, leider gleicher Fehler.
Wenn ich das ganze über eine VM, bei dem der Admin angemeldet ist (dort habe ich auch die Migration von David -> Exchange laufen gehabt) mache, funktioniert das einwandfrei.

Daher könnte es ja etwas mit den berechtigungen zu tun haben ... aber sind das nicht die "lokalen Outlook Berechtigungen"? Wenn ich bei den Clients, bei denen es nicht funktioniert die Ordner MANUELL zu Favorits hinzufüge (rechter Mausklick -> blabla) funktioniert das ohne Probleme.

Die angemelden User am Client sind aber auch lokale Administratoren ...
7907292512
7907292512 23.07.2023 aktualisiert um 10:48:59 Uhr
Goto Top
Die angemelden User am Client sind aber auch lokale Administratoren ...
Autsch, wieso macht man sowas?!

Ist das ein 64 oder 32BIt Office?

Die verwendete PowerShell-Konsole sollte die gleiche Bitness haben wie das Outlook!

Wenn da also ein 32bit Office läuft und die PowerShell aber in 64bit läuft oder anders rum gibt es solche Probleme, weil dann das COM-Objekt nicht passt.

Klappt das mit Office 2021 LTS 64bit auf 10 Test-Clients ohne Probleme.
Du Funktion wird nach Vorschrift verwendet
https://learn.microsoft.com/de-de/office/vba/api/outlook.folder.addtopff ...
installer
installer 23.07.2023 aktualisiert um 11:15:23 Uhr
Goto Top
Zitat von @7907292512:
Autsch, wieso macht man sowas?!
... hatte das zeitweise so eingestellt um evtl. Berechtigungsproblemen aus dem Weg zu gehen, bzw. das auszuschließen
Ist das ein 64 oder 32BIt Office?
64 bit OS und 64 bit Office
Die verwendete PowerShell-Konsole sollte die gleiche Bitness haben wie das Outlook!
passt so !


... was aber interessant ist, ist das auf den Geräten bei denen es funktioniert ein Outlook mit 32-bit installiert ist. (auf dem Test-Gerät, sowie auf der VM) ... obwohl das OS ein 64-bit ist.

Es ist also bei mir gerade so, das wenn OS und Outlook unterschiedliche Bitness haben, es funktioniert - und wenn beide 64-bit haben, funktioniert es nicht.

Hab das auch mit
[System.Environment]::Is64BitProcess
geprüft.


... mit der "x86" Powershell bekomme ich übrigens die selbe Fehlermeldung auf betroffenen System wieder zurück face-sad
7907292512
7907292512 23.07.2023 aktualisiert um 14:40:38 Uhr
Goto Top
Scheint als hätte die Methode unter 64bit mal wieder einen Bug und funktioniert deswegen nicht überall fehlerfrei.
Sorry da wirst du dir dann eine andere Methode überlegen müssen.
installer
installer 23.07.2023 um 14:49:58 Uhr
Goto Top
... mmmhmm .... noch nie gemacht, und echt absolut kein Schimmer wo und wie ich das konfiguriere face-sad
in den Add-ins ?

... habe den Befehl von dir jetzt mal noch an meinem Privat-PC mit installiertem Outlook (64-bit) getestet.

Bei
$_.AddToPFFavorites()
meckert der hier auch.
Das klappt bei mir nur bei installiertem 32-bit Outlook face-sad

Hab jetzt mal alle Adressbücher gezählt, da in den Adressbücher noch weitere Unterteilungen waren ... und komme da auf 80 !!!!! Adressbücher ... welche wohl über die Jahre hinweg gewachsen und gepflegt wurden. Das war im David wohl wesentlich komfortabler als im Outlook face-confused
7907292512
7907292512 23.07.2023 aktualisiert um 15:00:58 Uhr
Goto Top
Ist wohl ein Bug., kann ich nix machen.