Bents Blog

 

Ein IT Blog mit Themen aus dem Windows Server Umfeld.

Export (und Import) von Postfächern unter Microsoft Exchange Server 2007

Ich weiß, es gibt bereits genügend Artikel zum diesem Thema und doch wollte ich meine notwendigen Schritte – um diese eigentlich essentielle Funktionalität nutzen zu können – hier dokumentieren. Eigentlich sollte der Export einer Mailbox auf einem Exchange Server kein Problem darstellen und im Produkt integriert sein, doch leider hat Microsoft hier „geschlampt“.

Einer unserer Kunden bat mich letzte Woche, die Daten einiger ausgeschiedener Benutzer zu archivieren und aus dem System zu entfernen. Kein Problem, dank der Sicherungssoftware Backup Exec von Symantec (mit der wir in der Vergangenheit die besten Erfahrungen im Windows Umfeld gesammelt haben) lassen sich sämtliche Server-gespeicherten Benutzer-Profile (User Shared Folders, Terminalserver-Profile, Umgeleitete Ordner etc.) schnell und einfach archivieren (natürlich auf ein WORM Band) und gleichzeitig löschen.

Die Benutzerkonten der Domäne selbst sind sehr schnell deaktiviert und in eine eigens dafür vorgesehene OU verschoben.

Problem

Bleiben nur noch die Exchange-Postfächer. Leider unterstützt Backup Exec die Sicherung einzelner Postfächer mit Archivierungsfunktion erst ab Version 2010, diese Option steht uns in der eingesetzten Version 11d aber leider nicht zur Verfügung. Zwar werden täglich differentiell und in der wöchentlichen Vollsicherung alle Storage Groups des Microsoft Exchange Information Store gesichert, es gibt aber keine Möglichkeit, einzelne Mailboxen aus dem System heraus revisionssicher auf ein WORM Band zu archivieren. Doch im Prinzip gibt es sie doch: Der Exchange-Powershell-Befehl

Export-Mailbox -Identity <Identität> -PSTFolderPath <Pfad zur PST-Datei>

sollte genau das tun, was ich ursprünglich erwartet hatte. Doch weit gefehlt, nach der Ausführung meldet Exchange folgenden Fehler:

Sie arbeiten auf einem 64-Bit-Computer. Zum Exportieren in eine oder Importieren aus einer PST-Datei müssen Sie auf einem 32-Bit-Computer arbeiten, auf dem Outlook 2003 SP2 oder höher installiert ist.

Der Microsoft Exchange Server 2007 ist im produktiven Umfeld nur als 64 Bit Version zugelassen. Ich finde es schon ziemlich frech, einem Kunden diese Meldung zu präsentieren, da ein Export keine sonderlich seltene bzw. außergewöhnliche Aufgabe für einen Administratoren darstellt. Es muss ja auch keine PST-Datei sein!?

Lösung

Da die Methode „Kopf in den Sand stecken“ noch nie zum Ziel geführt hat, habe ich mir kurz Gedanken gemacht und selbige kurzerhand in die Tat umgesetzt. Der Kunde nutzt glücklicherweise eine von uns empfohlene und eingerichtete Virtualisierungslösung, mit der ich innerhalb einer halben Stunde einen neuen Windows Server 2003 R2 32 Bit aufgesetzt habe – dieser dient uns zukünftig für Support-Aufgaben für den Exchange Server. Eine 10 GB Systemdisk reicht für das Vorhaben völlig aus. Alle Betriebsystem ISO-Abbilder und Installationsdateien befanden sich im Netzwerk, alle Arbeiten habe ich remote ausgeführt, ohne das der Kunde im Betrieb gestört oder behindert wurde. Dank meiner Gruppenrichtlinieneinstellungen und dem installierten WSUS war der neue Server nach einer weiteren halben Stunde und mehreren Reboots (20 Sekunden pro Neustart machen richtig Spaß) mit allen nötigen Updates (183 erforderlich) „betankt“ und einsatzbereit.

Nach den Windows Updates installierte ich Microsoft Outlook in der Version 2007 (Dauer ca. 3 Minuten).

Während der Installation der Maschine hatte ich bereits im Hintergrund auf einem anderen Server die Microsoft Exchange Server 2007 Management Tools (32 Bit) heruntergeladen und entpackt (beim SP3 sind das immerhin 1,48 GB). Das Setup forderte noch die Installation des Windows Installer 4.5, danach konnte ich die Verwaltungstools problemlos installieren – vorher noch den Microsoft IIS installieren, sonst meldet die Installation einen Fehler beim Test:

Nach der Installation (ca. 3 Minuten) hatte ich nun alle notwendigen Komponenten auf dem Support-Server installiert. Jetzt kann ich loslegen – dachte ich, denn Windows Update kam nun gleich mit weiteren etwa 40 Updates (Exchange Rollup, Outlook SP2 und weitere Office Updates) „um die Ecke“. Auch diese habe noch installiert (Obwohl unverständlich bleibt, warum beispielsweise ein Excel Hilfe Update bei einer reinen Outlook Installation installiert werden muss?).

Der Befehl Export-Mailbox (Paramater siehe oben) bringt nun die folgende Rückfrage:

Bestätigung Möchten Sie diese Aktion wirklich ausführen? Der Postfachinhalt wird aus dem Postfach ‚Benutzer‘ in die PST-Datei ‚Pfad zur PST-Datei‘ exportiert. Der Abschluss dieses Vorgangs kann sehr viel Zeit in Anspruch nehmen. [J] Ja [A] Ja, alle [N] Nein [K] Nein, keine [H] Anhalten [?] Hilfe (Standard ist „J“):

Allerdings schlug die Ausführung des Befehls mit der folgenden Meldung fehl (Event ID: 1008, Quelle: Exchange Migration):

Fehler bei Task ‚export-mailbox‘ für Postfach ‚Benutzername‘. Fehler: Fehler beim Kopieren von Nachrichten in den Zielpostfachspeicher: MAPI oder ein nicht angegebener Dienstanbieter. ID: 00000000-0000-00000000.

Dieser Fehler tauchte mangels fehlender Berechtigung auf – nachdem ich auf dem zu exportierenden Postfach dem Administratorkonto Vollzugriff gewährt hatte, lief der Export erfolgreich durch:

Das Ganze läßt sich – da auf PowerShell basierend – prima skripten und mit Variablen für die Identität (Alias) und die PST-Datei füllen. Da ich hier nur einige Benutzer zu exportieren hatte, habe ich die betreffenden Postfächer manuell exportiert.

Die entstandenen PST-Dateien liegen in dem zentralen Speicherort des jeweiligen Benutzers von dem sie mit Hilfe von Backup Exec archiviert wurden. Die Postfächer im Exchange-Server wurden nach dem Export deaktiviert (das zugehörige Benutzerkonto wurde ja deaktiviert und in eine andere OU verschoben). Wenn man nicht die 30 Tage bis zur automatischen Bereinigung durch Exchange warten möchte, können die getrennten Postfächer mittels der folgenden Befehle auch sofort gelöscht werden:

Get-MailboxStatistics | where-object { $_.DisconnectDate -ne $null } | Select DisplayName,MailboxGuid
Remove-Mailbox -Database Database-Name -StoreMailboxIdentity MailboxGuid

Nachtrag vom 11. Juli 2013

Um sowohl den obigen Fehler beim Export zu umgehen, als auch den Export für eine größere Anzahl an Postfächern zu ermöglichen, eignet sich (aus eigener Erfahrung) die Kombination aus folgenden Powershell-Befehlen hervorragend:

Get-Mailbox -OrganizationalUnit ‚[OU der Domäne]‘ | Add-MailboxPermission -User [Exchange Administrator Konto] -AccessRights FullAccess | Export-Mailbox -PSTFolderPath [Pfad des Speicherorts] -Confirm:$false

Fazit

Nach der Installation des Support Servers, aller Softwarekomponenten und einigen kleineren Problemen steht uns nun eine funktionierende Im- und Export-Funktion von Benutzerpostfächern zu Verfügung. Schade ist nach wie vor, dass Microsoft diesen – doch relativ umständlichen Weg – als einzig brauchbare Lösung vorgibt, ohne dass erst teure Zusatzsoftware gekauft werden muss.

Hier noch einmal eine kurze Liste der nötigen Schritte:

  • Betriebssystem Windows Server 2003 oder 2008 (32 Bit) – kein 2008 R2
  • Microsoft Internet Information Server (via Software)
  • Microsoft Outlook 2003 SP2 oder 2007
  • Windows Installer 4.5
  • Microsoft Exchange Server 2007 Verwaltungstools (32 Bit)
  • aktuelle Windows Updates
  • mindestens Rollup 4 für Exchange Server 2007 SP1 auf dem Server mit der Mailbox-Rolle
  • Vollzugriff für das Postfach des zu exportierenden Benutzers (via Exchange Verwaltungskonsole)
  • PowerShell Befehle ausführen

Wie immer gilt, Vorschläge, Kritiken oder Hinweise bitte als Kommentar posten.

Einen Blog am Leben zu erhalten kostet Zeit und Geld. Da ich auf meiner Seite weder Werbung einbinde, noch andersweitige Zuwendungen erhalte, freue ich mich über jede kleine Spende. Einfach und unkompliziert geht das über PayPalMe. Du unterstützt damit diesen Blog. Vielen Dank.

5 Kommentare für “Export (und Import) von Postfächern unter Microsoft Exchange Server 2007”

  • GoTo

    Herzlichen Dank!!

    der Tipp mit dem Vollzugriff funktionierte :)

    thx

  • Toni Antoniadis

    Eine Systemdisk mit nur 10 GB funktioniert nicht. Ich muss nun die Systempartition auf 20 GB erweitern. Schaun wir mal, ob das reicht.

    Alle weiteren Erfahrungen poste ich zur gegebenen Zeit.

    Vielen Dank erstmal für das HowTo

  • Toni Antoniadis

    Super! Hat einwandfrei funktioniert!
    Hier noch eine kleine Erweiterung: Wer ALLE Postfächer in einem Rutsch exportieren möchte, gibt folgendes Kommando ein

    $Export=Get-Mailbox; $Export|%{$_|Export-Mailbox -PSTFolderPath }

    Leider bin ich in der PowerShell nicht bewandert genug, um einen kleinen Schönheitsfehler zu beseitigen: Während der Befehl abgearbeitet wird, fragt das System bei jedem Postfach, ob man diese Aktion wirklich ausführen möchte. Die Antwort lautet jedesmal „A“. Es gibt mit Sicherheit eine Möglichkeit diese Texteingabe zu automatisieren – nur ich kenne sie nicht. Vielleicht hat jemand eine zündende Idee…

    WICHTIGE HINWEISE:
    * Der Exportvorgang eines umfangreichen Exchange-Servers kann mehrere Minuten bis Stunden dauern – je nach Datenmenge.
    * Sorgt dafür, dass das Volume des PST-Pfades ausreichend Speicherkapazität bereitstellt.

  • Toni Antoniadis

    Der Kommentareditor hat eine Angabe verschluckt: Nach dem Parameter „-PSTFolderPath“ gehört natürlich der Pfad zu einem Ordner, in den das System die Exportdateien ablegt.

  • Bent Schrader

    Hallo Toni,

    der „Schönheitsfehler“ lässt sich mit Hilfe des -confirm Schalters lösen:

    get-mailbox | export-mailbox -PSTFolderPath: C: -Confirm:$false

    Gruß,
    Bent

Einen Kommentar hinterlassen:

Antispam Bee hat Bent's Blog vor 409.102 Spam-Kommentaren bewahrt.