Ein Kollege hatte das Problem, dass er einige Tausend Mails weiterleiten musste und die Outlook-Regel nicht gegriffen hat. dafür habe ihm ein kleines Script geschrieben, welches alle Mails in Posteingang an eine definierte Zieladresse weiterleitet:
Add-Type -Assembly "Microsoft.Office.Interop.Outlook" $Outlook = New-Object -ComObject Outlook.Application $Namespace = $Outlook.GetNameSpace("MAPI") $Posteingang = $Namespace.Folders.Item('Joachim@PowerShell24.de').Folders.Item('Posteingang').Items Foreach($mail in $Posteingang){ $NewMail = $mail.Forward() $NewMail.To = "NewRecipient@PowerShell24.de" $NewMail.Send() }
Man kann mit “Folders.Item(‘…’).Folder.Item(‘…’)…etc….” weiter durch die Ordnerstruktur browsen. Im Internet finden sich noch weitere Befehle, die man im Zusammenhang ausführen kann.
Das Script funktioniert nur, wenn auf dem Rechner Outlook installiert ist und man als der User die entsprechenden Rechte hat die Mailbox zu öffnen und diese auch im passenden Profil eingebunden ist. Bei Outlook 2016 mit Windows 10 kann ich bestätigen, dass Outlook dafür nicht geöffnet sein muss, da es sich im Hintergrund selbst öffnet und wieder schließt… aber er hat nicht mehr aufgehört und somit hatte ich ein paar viele Mails im Eingang, bis ich die Shell geschlossen habe. Also am besten: Outlook im richtigen Profile öffnen, dann habt ihr keine Probleme.