Outlook via COM (oder anderweitig) .pst Datei erstellen
Moin,
Ich würde gerne via autostart + PS jedem Outlook User eine spezielle .pst verpassen, das internet sagt mir das ichs über COM machen kann (geht auch anders? COM scheint doch sehr lahm zu sein)
Dazu paar Fragen:
- Die .addstore methode akzeptiert nur den einen Parameter, falls ich einen Namen vorgeben will, muss ichs als zweiten schritt umbenenen, direkt einen Namen geben geht nicht?
hier gibts was von stackoverflow zum thema umbenennen: https://stackoverflow.com/questions/9598536/rename-folders-in-outlook-ps ...
ff
allerdings checke ich nicht ganz woher ich die folderid bekomme...
- Nehme ich da .addstore oder .addstoreEx? Welches Format nimmt Outlook wenn ichs per GUI mache?
https://docs.microsoft.com/de-de/office/vba/api/outlook.namespace.addsto ...
Ich würde gerne via autostart + PS jedem Outlook User eine spezielle .pst verpassen, das internet sagt mir das ichs über COM machen kann (geht auch anders? COM scheint doch sehr lahm zu sein)
$MailPath = "C:\Temp\Test"
$null = Add-type -AssemblyName "Microsoft.Office.Interop.Outlook"
$Outlook = new-object -ComObject outlook.application
$Namespace = $Outlook.GetNameSpace("MAPI")
#Falls noch keine PST existiert, eine neue für den User erstellen:
$Test = Get-ChildItem -Recurse "$MailPath\*.pst"
if (!$Test) {
$Namespace.AddStore("$MailPath\Test.pst")
}
else {
$Test | % { $Namespace.AddStore($_.FullName) }
}
#Aufräumen
$Namespace.Logoff()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Namespace)
$outlook.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($Outlook)
Dazu paar Fragen:
- Die .addstore methode akzeptiert nur den einen Parameter, falls ich einen Namen vorgeben will, muss ichs als zweiten schritt umbenenen, direkt einen Namen geben geht nicht?
hier gibts was von stackoverflow zum thema umbenennen: https://stackoverflow.com/questions/9598536/rename-folders-in-outlook-ps ...
folder = ns.GetFolderFromID(folderid) as Outlook.Folder;
allerdings checke ich nicht ganz woher ich die folderid bekomme...
- Nehme ich da .addstore oder .addstoreEx? Welches Format nimmt Outlook wenn ichs per GUI mache?
https://docs.microsoft.com/de-de/office/vba/api/outlook.namespace.addsto ...
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 504677
Url: https://administrator.de/forum/outlook-via-com-oder-anderweitig-pst-datei-erstellen-504677.html
Ausgedruckt am: 25.12.2024 um 02:12 Uhr
9 Kommentare
Neuester Kommentar
Hi,
wie langsam ist denn "sehr lahm"?
Und was ist das für eine spezielle PST? Hat diese einen vorgefertigten Inhalt oder geht es nur um einen vorgegebenen Speicherplatz?
Wenn das bei allen Benutzern die gleiche PST wird (Inhalt), dann reicht es wohlmöglich schon, eine PST als Vorlage zu erstellen und diese nur für den Benutzer an den gewünschten Ort zu kopieren und dann im Outlook-Profil einzubinden.
E.
wie langsam ist denn "sehr lahm"?
Und was ist das für eine spezielle PST? Hat diese einen vorgefertigten Inhalt oder geht es nur um einen vorgegebenen Speicherplatz?
Wenn das bei allen Benutzern die gleiche PST wird (Inhalt), dann reicht es wohlmöglich schon, eine PST als Vorlage zu erstellen und diese nur für den Benutzer an den gewünschten Ort zu kopieren und dann im Outlook-Profil einzubinden.
E.
Zitat von @NetzwerkDude:
Edit: Soll doch eine dynamische komponente bekommen, daher würde dich doch eine methode zum umbenennen von ordnern benötigen
Store-Root umbenennen kein ProblemEdit: Soll doch eine dynamische komponente bekommen, daher würde dich doch eine methode zum umbenennen von ordnern benötigen
$Namespace.AddStore("$MailPath\Test.pst")
$Outlook.Session.Stores[$Outlook.Session.Stores.Count].GetRootFolder().Name = "BlaBlub"
Wenn ndu kein COM nutzen willst, ist das offizielle MAPI-Interface zur Stelle mit dem du auch ziemliche FIXE Apps mit c++ & Co erstellen kannst:
Outlook MAPI Reference
Und wie schaut es mit Zugriff / Erstellen / Umbenennen von Unterordner aus?
Genau so. Für einen Unterordner namens "testordner" im Posteingang des MAPI Stores:$Namespace.GetdefaultFolder(6).Folders['testordner'].Name = "BlaBlub"
aber denke für mein bescheidene Programmierskills aktuell wohl zuviel
Dann bleibt's halt langsam , you get what you can.
Hier gehts einwandfrei. Du bist sicher das du einen "Unterordner" des Posteingangs umbenennen willst oder doch einen im Root des Stores?