Mittels Exchange Management Shell lassen sich auf einfachem Weg Postfächer in eine PST-Datei exportieren. Dieser kleine Artikel zeigt wie es funktioniert.
Damit Postfächer exportiert (und auch importiert) werden können, muss dem Benutzer der den Export durchführt, zunächst eine RBAC Rolle zugewiesen werden, für den Benutzer Administrator geschieht dies mit folgendem Befehl:
New-ManagementRoleAssignment –Role "Mailbox Import Export" –User "Administrator"
Nach dem Zuweisen der Rolle muss die Exchange Management Shell geschlossen und wieder geöffnet werden. Jetzt stehen die CMDLets für Export und Import zur Verfügung.
Export eines einzelnes Postfachs
Um ein einzelnes Postfach zu exportieren kann der folgenden Befehl verwendet werden:
get-mailbox frank | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\frank.pst"
In diesem Beispiel wird das Postfach mit dem Alias Frank nach \\fwcomex1\d$\Export exportiert. Der Export erfolgt immer auf eine Freigabe, ein Pfad wie zum Beispiel D:\Export funktioniert nicht. Als Format lässt sich nur PST verwenden. PST-Dateien lassen sich aber auf einfachem Weg mit Outlook öffnen.
Der Status des Exports lässt sich mit folgendem Befehl anzeigen:
Get-MailboxExportRequest
Mehr Details erhält man, wenn noch ein “| fl” angehangen wird. Die meisten Infos, die auch für die Fehlersuche interessant sind, liefert der folgende Befehl:
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | fl
Insbesondere das BadItemLimit ist interessant. In der Standardeinstellung bricht Exchange den Export ab, sobald ein defektes Element im Postfach gefunden wurde. Das Limit für defekte Elemente lässt sich aber anpassen:
get-mailbox frank | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\frank.pst" -BadItemLimit 50
Export aller Postfächer einer Datenbank
Mit einer leichten Abwandlung des Befehls lassen sich zum Beispiel auch alle Postfächer einer Datenbank exportieren:
get-mailbox -Database FWDB1 | foreach {New-MailboxExportRequest -Mailbox $_.Alias -FilePath "\\fwcomex1\d$\Export\$_.pst"}
In der Freigabe landet dann je Postfach eine PST-Datei:
Export von Archiv Postfächern
Auch Archiv Postfächer lassen sich exportieren. Der Befehl für ein Archiv eines einzelnen Benutzers lautet wie folgt:
get-mailbox frank -Archive | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\frank_archiv.pst"
Alle Archivpostfächer in einer Datenbank lassen sich mit dem folgenden Befehl verschieben:
get-mailbox -Database FWDB1 -Archive | foreach {New-MailboxExportRequest -Mailbox $_.Alias -FilePath "\\fwcomex1\d$\Export\$_.pst"}
Freigegebene Postfächer exportieren
Auch freigegebene Postfächer (Shared Mailbox) lassen sich exportieren, im Prinzip werden diese genauso behandelt wie normale Benutzerpostfächer. Somit lässt sich ein freigegebenes Postfach auch mittels des folgenden Befehl exportieren:
get-mailbox info | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\info_shared.pst"
Alle freigegebenen Postfächer einer Datenbank lassen sich mit dem folgenden Befehl exportieren:
get-mailbox -database FWDB1 | where {$_.RecipientTypeDetails -match "SharedMailbox"} | foreach {New-MailboxExportRequest -Mailbox $_.Alias -FilePath "\\fwcomex1\d$\Export\$_.pst"}
Nur bestimmte Daten aus einem Postfach exportieren
In manchen Fällen ist es erforderlich nur bestimmte Daten aus einem Postfach zu exportieren. Etwa nur die Kontakte oder nur den Kalender.
Alle Kontakte eines Postfachs lassen sich mit dem folgenden Befehl exportieren:
get-mailbox frank | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\frank_kontakte.pst" -IncludeFolders Kontakte
Der Kalender lässt sich dann wie folgt exportieren:
get-mailbox frank | New-MailboxExportRequest -FilePath "\\fwcomex1\d$\Export\frank_kalender.pst" -IncludeFolders Kalender
ExportRequest entfernen
Nachdem die Daten exportiert wurden, können auch die Export Request wieder gelöscht werden. Alle Export Request können mit dem folgenden Befehl entfernt werden:
Get-MailboxExportRequest | Remove-MailboxExportRequest
Der Befehl entfernt nur den Export Request, die PST-Dateien bleiben unberührt.
Lieber Franky, wiedereinmal danke für deine tollen Beiträge ! ich hänge momentan gleich mit folgendem Fehler:
leider bin ich trotz einiger Recherche nicht weitergekommen.. der Export via EAC funktioniert…
für einen Tip wär ich superfroh ! Danke, GLG Chris
Das Eingabeobjekt kann an keine Parameter des Befehls gebunden werden, da der Befehl keine Pipelineeingaben akzeptiert
oder die Eingabe und deren Eigenschaften mit keinem der Parameter übereinstimmen, die Pipelineeingaben akzeptieren.
+ CategoryInfo : InvalidArgument: (***n* ***rw*l***er:PSObject) [New-MailboxExportRequest], ParameterB
indingException
+ FullyQualifiedErrorId : InputObjectNotBound,New-MailboxExportRequest
+ PSComputerName : s**-m**l.k****10*2.**
Das war bei mir auch das Problem.
Mit einem veränderten Befehl klappt e.
New-MailboxExportRequest -Mailbox „frank“ -FilePath „\\fwcomex1\d$\Export\frank.pst“
Ist warscheinlich durch Aktualisierungen von Microsoft ausgelöst worden.
Hallo Zusammen
Mich würde interessieren, ob jemand schon versucht hat ein Online Archiv eines On-Prem Benutzers zu exportieren.
Ich habe mir bisher nur helfen können, indem ich alle Daten manuell aus dem CloudArchiv wieder OnPrem verschoben habe, um dann einen Export in eine PST zu machen.
Hat da jemand eine andere Idee, würde er mich unglaublich glücklich machen.
Danke
Michael
Moin Franky,
das hast mal wieder einen super Artikel geschrieben.
Danke dir.
Auf meinen Exchange 2019 klappte aber der Export mit dem Befehl
get-mailbox frank | New-MailboxExportRequest -FilePath „\\fwcomex1\d$\Export\frank.pst“ nicht. Die Pipe konnte beim den 2ten Befehl nicht zugewiesen werden. Aber egal ich habe dann mal was gesucht und eine Lösung gefunden.
Aufgabe: Ich musste ein Postfach mit Archiv in ein neues Postfach kopieren.
Ich habe mal alles aufgeschrieben. Vielleicht hilft es ja jemanden.
RBAC Rolle dem Administrator zuweisen
New-ManagementRoleAssignment –Role „Mailbox Import Export“ –User „Administrator“
Postfach exportiert
New-MailboxExportRequest -Mailbox inn -FilePath „\\serverex1\backup\inn_archiv.pst“ -BadItemLimit 50 -AcceptLargeDataLoss
Archiv Postfach exportiert
New-MailboxExportRequest -Mailbox inn -IsArchive -FilePath „\\serverex1\backup\inn-archiv.pst“ -BadItemLimit 50 -AcceptLargeDataLoss
Exportjob überprüfen
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | fl
Exportjob dann löschen wenn OK und fertig
Get-MailboxExportRequest | Remove-MailboxExportRequest
Postfach inn in Postfach inn1 importiert
New-MailboxImportRequest -Mailbox inn1 -FilePath „\\serverex1\backup\inn.pst“ -BadItemLimit 50 -AcceptLargeDataLoss
Importjob überprüfen
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics | fl
Importjob dann löschen wenn OK und fertig
Get-MailboxImportRequest | Remove-MailboxImportRequest
Archive Postfach inn in Postfach inn1 importiert
New-MailboxImportRequest -Mailbox inn1 -IsArchive -FilePath „\\serverex1\backup\inn-archiv.pst“ -BadItemLimit 50 -AcceptLargeDataLoss
Importjob überprüfen
Get-MailboxImportRequest | Get-MailboxImportRequestStatistics | fl
Importjob dann löschen wenn OK und fertig
Get-MailboxImportRequest | Remove-MailboxImportRequest
Hallo zusammen,
eine Kurze Frage noch , ob die Möglichkeit bestehet die Mailboxen in PST zu exportieren über einen bestimmten Zeitraum, wenn die Postfächer zu groß sind, damit ich ein Teil schon mal ein paar Tage vor der Migration im neuen Exchange (kein Trust) habe und dann nur die Differenz am Stichtag neu Exportiere und Importire?
Danke im Voraus.
Gruß
Sergej
Hallo,
beim import der pst kommt es zu folgendem Fehler und abbruch des Imports:
Error: This mailbox exceeded the maximum number of large items that were specified for this request.
Grds. würde es mittels PowerShell und einem BadItemLimit vermutlich erstmal funktionieren.
Aktuell würde ich jedoch immer noch davon abraten, gerade mit BadItemLimit (was wir ebenfalls dringend benötigten), fehlten etliche Mails und wirklich sauber war es dadurch dann nicht mehr.
Schau dir mal Drittanbieterlösungen an, ich kanns nur empfehlen, knapp 10 EUR pro Postfach und 30 Minuten Arbeit bis das Programm anfängt hochzuladen. Die BadItems kannst du dir danach anzeigen lassen und ggfsl. nochmal manuell importieren (bei uns waren knapp 200GB Datenbank und 35 defekte Elemente. Ich würde den Namen der Software durchaus verraten, will hier aber nicht in den Verdacht der Schleichwerbung geraten.
Hallo Christian,
danke für deine Antwort, wie setze ich den BadLimit?
Hallo,
eigentlich recht einfach, es wird nur der folgende Befehl angehängt:
-BadItemLimit 50
Ansonsten kannst du im folgenden Beitrag etwas zum BadItemLimit nachlesen, handelt sich hierbei nicht um einen Export (sondern Move) ist aber meines Wissens nach 1:1 transportierbar auf den Export Befehl:
https://www.frankysweb.de/howto-migration-von-exchange-2016-zu-exchange-2019-teil-3/
Wie weiter oben beschrieben: Export aller Postfächer einer Datenbank:
Wie kann man nur einen spezifischen Unterordner unter Posteingang/“Ordner zum exportieren“ exportieren?
get-mailbox -Database FWDB1 | foreach {New-MailboxExportRequest -Mailbox $_.Alias -FilePath „\\fwcomex1\d$\Export\$_.pst“}
Hi,
bin kein Profi ITler, aber auf Grund meiner Historie, meiner Begeisterung für alles was IT ist, sowie meiner Stellung im Beruf und meinen Erfahrungen mit externen Partnern bin ich im Betrieb der „AvD“. Vor zwei Jahren hat uns ein Dienstleister einen Exchange 2016 verkauft und auch installiert, nachdem die Probleme immer mehr wurden, so wurde es uns zuletzt nahezu unmöglich, mit Strato Mails zu versenden.
Jetzt haben wir umgestellt auf den Online Exchange und sind im ersten Moment mal sehr zufrieden. Da wir auf Grund der o. g. Probleme sehr schnell umstellen mussten, erledigten wir diese Tätigkeiten sofort und wollten uns im Nachgang darum kümmern die Postfächer zu exportieren und Online einzuspielen. Das Exportieren gestaltete sich jedoch extrem kompliziert, wir haben eine EX Datenbank von ca. 200GB und der erste Export von allen Postfächern (kombiniert mit BadItemLimit 50) endete mit einem COMPLETED bei 19 Postfächern und FAILEDOTHER bei 4 Postfächern. Nach erneutem Anlauf schafften es dann auch diese 4 Postfächer zum Status COMPLETED. Für mich unverständlich, dass ein Exportvorgang von 200GB fast 24 Stunden dauert, trotz kurzeitiger Freigabe von 16 Kernen, 64GB RAM und der konsequenten Nutzung von SSDs, aber das nur am Rande, Exchange ist nicht gerade ein Performancewunder.
Die wahre Odysee begann dann aber beim einspielen der PSTs, der vorgeschlagene Weg vom Dienstleister war das einspielen in die lokalen Outlook Clienst, erster Client angeschaltet, Importfunktion gewählt und „X“, nicht funktioniert, PST angeblich korrupt. Nun gut, erste Idee, PST reparieren lassen, Office bietet da ja durchaus ein Tool, dauert ewig, Ergebnis ist, „repariert“. Eingespielt und diesmal kein Fehler, aber dafür viel besser, er hat eine Mail wiederhergestellt. Super, nichts hat funktioniert. Das ganze ging dann so weiter, auf keinem einzigen PC hat es reibungslos funktioniert, jedes Mal kam zumindest ein Fehler von defekten Elementen. Mein Vertrauen in diesem Zeitpunkt = 0
Ich habe geschlagene drei Tage und Nächte alles erdenkliche versucht und nichts hat wirklich funktioniert. Meine letzte Idee war es eine Drittanbieter Software zu nutzen. Als ich zu diesem Schluss kam, war der Dienstleister natürlich im Feierabend, also habe ich mich selbst auf die Suche gemacht und für 23 Postfächer habe keine 200 EUR gezahlt und nach der guten Anleitung innerhalb von einer halben Stunde die Migration starten können. Ergebnis nach nun knapp 16 Stunden ist, das 74% der Postfächer hochgeladen sind und ich bisher 35 „Failed Items“ habe, die ich mir aber einzeln anzeigen lassen kann (zumindest Betreffzeile), diese habe ich mir jetzt manuell aus der Datenbank geholt (OWA) und einzeln gespeichert.
Ist vieleicht hier alles ein wenig falsch, aber meine feste Überzeugung, dass die Powershell Alternative keine wirkliche Alternative ist. meine ein neuer Exchange, ein Online Plan oder sonstwas kostet letztlich ein vielfaches von der Migrationssoftware. Dazu kommt ja noch, dass man selbst wenn es funktioniert eine riesige Manpower benötigt um die Daten zurückzuspielen (zumindest Online fehlte bei uns die Importmöglichkeit (derzeit nicht freigegeben in unserer Region). Hier sind ja viele ITler die damit ihr Geld verdienen unterwegs, verkauft ihr Kunden dieses hier beschriebene Vorgehen wirklich?
Gruß
Christian
Hallo Christian,
das von dir beschriebene Szenario ist kein gängiger Weg um eine Migration von Onpremise Exchange 2016 in die Cloud zu machen. Dieses Vorgehen wird bei Übernahme von IMAP oder POP Konten eingesetzt. Für solch eine Migration hätte der AD-Connect für die Synchronisierung der Onpremise Nutzer in die Cloud eingerichtet werden müssen. Danach würde der Hybrid Modus für Exchange 2016 aktiviert und die Verbindung mit Exchange Online hergestellt werden. Somit wäre es möglich gewesen die lokalen Postfächer mittels Onboard Migrationsverschiebung von Exchange in die Cloud zu lagern.
Mit dieser Methode hätten keine Postfächer vorher exportiert werden und mühsam über einen Outlook Client hochgeladen werden müssen. Bei älteren Exchange Versionen setzt man die sogenannte „Cutover Migration“ über Outlook Anywhere ein (Was aber auch mit Exchange 2013 und 2016 funktioniert). Dies wäre auch eine einfachere Alternative gewesen.
Was mich aber auch wundert ist das der Exchange 2016 Server bei euch so schlecht lief. Bei richtiger Einrichtung läuft der Server wirklich einwandfrei und vor allem mit denen von euch ausgestatteten Hardware Ressourcen.
Gruß
Sebastian
Weitere Kalender sind Unterordner vom Standardkalender
Versuchs mal mit:
get-mailbox frank | New-MailboxExportRequest -FilePath „\\fwcomex1\d$\Export\frank_kalender.pst“ -sourcerootfolder „Kalender“ -IncludeFolders „Unterkalender“
Hallo Frank,
danke erst mal für Alles. Kann ich den Befehl
get-mailbox frank | New-MailboxExportRequest -FilePath „\\fwcomex1\d$\Export\frank_kalender.pst“ -IncludeFolders Kalender
noch verfeinern wenn sich mehrere Kalender in dem Postfach befinden?
Hallo, vielen Dank für die Anleitung.
Besteht die Möglichkeit differentiele PST Sicherungen zu erstellen? z.B. einen Export Request um alle seit Datum xy geänderten Daten in eine PST Datei zu sichern?
Gruß
MFG
Hallo,
nein, nur geänderte Daten zu exportieren ist nicht möglich. Es handelt sich hier auch um einen Export der Daten, nicht um eine Möglichkeit für ein Backup. Die Sicherung erfolgt via VSS.
Gruß,
Frank
Hallo Franky,
ich muss von Exchnage-Online, Office 365, ein paar Postfächer exportieren.
Funktioniert diese Anleitung auch mit Office 365 oder muss ich dazu diese Anleitung benutzen?:
https://www.codetwo.de/blog/office-365-postfaecher-mittels-ediscovery-in-pst-exportieren/5929
Vielen Dank.
Grüsse Peter
Hallo Peter,
meine Anleitung ist für Exchange On-Prem.
Gruß,
Frank
Hallo Franky,
ich habe das Problem das der PST Export einer kompletten Datenbank mit ca. 25 Postfächern und 25GB Gesamtgröße sehr lange dauert. Nach 15 Stunden habe ich den Vorgang dann abgebrochen. Man kann erkennen das alle paar Minuten immer nur ein paar MB kopiert werden. Es spielt keine Rolle ob ich die PST Dateien auf einen anderen Server oder auf dem Exchange direkt exportiere. Mit dem Befehl „Get-MailboxExportRequest | Get-MailboxExportRequestStatistics | fl“ konnte ich auf den ersten Blick keine Fehler feststellen. Die Paramter „-BadItemLimit 50000“ und „-AcceptLargeDataLoss“ habe ich gesetzt.
Ich verwende Exchange 2016 mit der Version CU10.
Viele Grüße
Daniel
Hallo,
noch als kleine Hilfestellung: die Berechtigung Schreiben für „Exchange Trusted Subsystem“ der Organisation muss für die Netzwerkfreigabe gesetzt sein, sonst scheitert der Export mit einer entsprechenden Fehlermeldung. Für die, die nicht gleich schreibenden Zugriff für „Jeden“ einrichten wollen.
Gruß
Uwe
Hallo Franky!
Seit Exchange 2016 CU8 habe ich das Phänomen, dass die PST-Dateien auch bei Neuerstellung die 3-4 fache Größe der Postfächer haben. Ist das normal? Gibt es da Abhilfe?
Gruß
Roland
Guten Tag,
ich habe das gleiche Problem.
Gibt es ein Erklärung dafür?
auch, wenn der Thread schon älter ist: Dasselbe Problem mit Exchange 2019, neueste CU. Damit ist leider das Backup nicht nutzbar – ein 10GB Postfach bläht sich zu unglaublichen 25GB+ auf. Interessanterweise aber nur manchmal … ein System habe ich nicht erkannt.
Vage meine ich mich zu erinnern, dass ich mal testweise eine Sicherung mit dem Windows-eigenen Backup der Exchange-„Platte“ gemacht hatte. In Folge war es ein paar Tage gut …
Hallo, kann man auch getrennte Postfächer in eine PST exportieren?
Hi,
kleiner Verbesserungsvorschlag: Um Shared Mailboxes auszufiltern braucht man keinen Where Filter mehr, es reicht ein
Get-Mailbox -RecipientTypeDetails SharedMailbox
Gruß
Hallo,
zunächst vielen Dank an Franky für die vielen hilfreichen Beiträge zu Themen, mit denen viele Exchange Administratoren im Laufe ihrer Karriere konfrontiert werden.
Um meinen Teil dazu beitragen zu können, möchte ich ergänzend hinzufügen, das bei der Konfiguration von -BadItemLimit die 50 als maximaler Wert zu sehen ist.
Sollte es notwendig sein, einen höheren Wert zu definieren, muss der Parameter -AcceptLargeDataLoss mit eingebracht werden.
just my two cents…
Hallo,
zur Info: Ab Exchange 2013 lassen sich die Postfächer auch per GUI (ECP) exportieren.
Zuerst benötigt der Administrator die Berechtigung (kann auch über das ECP vergeben werden), wie im Artikel beschrieben, und wenn man sich dann neu im ECP einloggt und das jeweilige Postfach markiert, kann man über die drei Punkte (erweiterte Optionen) einen PST Export ebenfalls vornehmen.
VG
Super Tipp. Vielen Dank dafür.