balgor
Goto Top

Exchange Online - per Powershell öffentliche Ordner-Favoriten verteilen - wie?

Hallo,

ich habe mal wieder ein "kleines" Problem und könnte eure Hilfe gebrauchen.

Ist es möglich per PowerShell die öffentlichen Ordner eines Benutzers abzufragen und diese öffentlichen Ordner dem selben Benutzer dann ebenfalls als öffentliche Ordner-Favoriten zu hinterlegen?

Ich wollte mir diesbezüglich eine schleife bauen, die die User durchgeht, die zugewiesenen öffentlichen Ordner zusammenträgt und diese als Favoriten hinterlegt. ... so müsste ich das nicht bei jedem User einzeln (~90 Stk.) machen.

Ich hab viele dazu gegoogelt und auch Skripte gefunden, welche angeblich genau das machen sollten, aber es waren immer einzelne Cmdlets dabei die mein Exchange nicht kennt und somit funktionierte das ganze natürlich nicht.

z.B. Add-PublicFolderFavorite oder Add-FavoriteFolder um nur zwei zu nennen.

Würde mich um etwas Hilfe freuen.

Mfg Balgor

Content-ID: 7288812823

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

Ausgedruckt am: 22.11.2024 um 19:11 Uhr

7010350221
7010350221 24.05.2023 aktualisiert um 16:16:16 Uhr
Goto Top
Outlook Client-Powershell Einzeiler (muss auf dem Client ausgeführt werden, z.B. per Logon-Skript weil diese Ordner im Outlook-Profil selbst gespeichert werden und nicht in der Mailbox!)
(New-Object -Com Outlook.Application).GetNamespace("MAPI").GetDefaultFolder(18).Folders | %{$_.AddToPFFavorites()}  
Done.
In dem Beispiel werden alle Ordner der ersten Ebene zu den Favoriten hinzugefügt, kann man aber nach belieben anpassen.
Das hier etwas macht das selbe für alle Ordner eines bestimmten Unterordners.
(New-Object -Com Outlook.Application).GetNamespace("MAPI").GetDefaultFolder(18).Folders['MySubfolder'].Folders | %{$_.AddToPFFavorites()}  

Gruß
Balgor
Balgor 24.05.2023 um 16:59:43 Uhr
Goto Top
Hey, danke für die Rückmeldung.

Ist dem wirklich so, dass es nicht in der Mailbox gespeichert wird? Ich war mir ziemlich sicher, wenn ich einen vorhandenen Benutzer (also einen wo ich die Favoriten schon mal händisch alle hinzugefügt hatte) irgendwo sein Outlook neu eingerichtet habe, waren die öffentlichen Ordner-Favoriten gleich mit vorhanden.
Bei neuen Benutzern hatte ich das Vergnügen anfangs immer einmal.

Jedenfalls habe ich den Einzeiler mal an einem Client ausprobiert und bekomme allerdings folgende Fehlermeldung:
Ausnahme beim Aufrufen von "GetNamespace" mit 1 Argument(en):  "Das COM-Objekt des Typs "Microsoft.Office.Interop.Outlook.ApplicationClass" kann nicht in den   
Schnittstellentyp "Microsoft.Office.Interop.Outlook._Application" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf   
an die COM-Komponente für die Schnittstelle mit der IID "{00063001-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte:   
Fehler beim Laden der Typbibliothek/DLL. (Ausnahme von HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))."  
In Zeile:1 Zeichen:1
+ (New-Object -Com Outlook.Application).GetNamespace("MAPI").GetDefault ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidCastException
7010350221
7010350221 24.05.2023 aktualisiert um 17:32:30 Uhr
Goto Top
Zitat von @Balgor:
Ist dem wirklich so, dass es nicht in der Mailbox gespeichert wird?
Ja definitiv! Das wird im Outlook-Profil gespeichert, wandert das Profil per Roaming-Profile mit sieht es so aus als wäre es in der Mailbox dem ist aber nicht so.
https://learn.microsoft.com/en-us/exchange/collaboration-exo/public-fold ...
The Outlook client does not automatically sync public folders with Outlook on the web or the new Outlook for Windows.
Kannst auch gerne per MFCMAPI in die Mailbox schauen da wirst du nichts diesbezüglich finden.

Jedenfalls habe ich den Einzeiler mal an einem Client ausprobiert und bekomme allerdings folgende Fehlermeldung:
Ausnahme beim Aufrufen von "GetNamespace" mit 1 Argument(en):  "Das COM-Objekt des Typs "Microsoft.Office.Interop.Outlook.ApplicationClass" kann nicht in den   
Schnittstellentyp "Microsoft.Office.Interop.Outlook._Application" umgewandelt werden. Dieser Vorgang konnte nicht durchgeführt werden, da der QueryInterface-Aufruf   
an die COM-Komponente für die Schnittstelle mit der IID "{00063001-0000-0000-C000-000000000046}" aufgrund des folgenden Fehlers nicht durchgeführt werden konnte:   
Fehler beim Laden der Typbibliothek/DLL. (Ausnahme von HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))."  
In Zeile:1 Zeichen:1
+ (New-Object -Com Outlook.Application).GetNamespace("MAPI").GetDefault ...  
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
    + FullyQualifiedErrorId : InvalidCastException

Das muss in einer Powershell-Konsole passend zur Bitness des Outlook ausgeführt werden, also wenn Outlook in 32bit installiert ist dann in einer 32bit Powershell Konsole ansonsten bei 64bit Outlook in 64bit Konsole.