Manchmal ist es notwendig Mailboxen aus einer bestehenden Exchange 2010 oder SBS 2011 Umgebung zu exportieren.
Seiteninhalte
Benötigte Komponenten
Um den Export vornehmen zu können müssen ein paar Bedingungen erfüllt sein. Da Clientsoftware auf einem Server meiner Meinung nach nichts zu suchen hat, verwende ich hierfür immer meine Admin Workstation:
- Exchange 2010 SP1 (ist beim SBS 2011 schon dabei)
Outlook 2010 x64(seit SP1 nicht mehr notwendig)- Exchange Management Tools
Import & Export Rechte
Um Mailboxen exportieren und importieren zu können benötigt man ein spezielles Recht (welches per default keinem Benutzer zugeordnet ist). Die Zuordnung erfolgt wie alle weiteren Befehle auch in der Exchange Management Shell.
New-ManagementRoleAssignment –Role “Mailbox Import Export” –User AD\ExAdmin
Export einer Mailbox
Der einfachste Vorgang ist das exportieren einer einzigen Mailbox. Hierfür reicht ein simpler Powershell Befehl:
New-MailboxExportRequest -Mailbox User01 -FilePath "\\adminpc\export\User01.pst”
Wichtig: Der Pfad zu den Exportdateien muss ein UNC Pfad sein, der für das System auch erreichbar ist!
Export aller Mailboxen
Ein klein wenig komplexer, aber dank PowerShell noch immer recht einfach, wird das exportieren aller vorhandenen Mailboxen auf dem System:
foreach ($i in (Get-Mailbox)) { New-MailboxExportRequest -Mailbox $i -FilePath "\\adminpc\export\$($i.Alias).pst” }
Status des Exports
Bei größeren Exports will man natürlich auch wissen, wie weit der Fortschritt der einzelnen Schritte ist. Diesen kann man sich mit nachfolgendem Befehl anzeigen lassen:
Get-MailboxExportRequest | Get-MailboxExportRequestStatistics
Import einer Mailbox
Daten die man exportiert hat will man natürlich auch wieder importieren. Das erreicht man mit folgendem Befehl.
New-MailboxImportRequest –Mailbox User01 –FilePath "\\adminpc\export\User01.pst”
Massenimport von Mailboxen
Natürlich gibt es via Powershell auch einen Weg viele Mailboxen auf einen Schlag zurück zu spielen. In meinem Beispiel ist es notwendig, dass die exportierten Dateien den Namen der Mailbox tragen UND das die neuen Mailboxen den gleichen Namen haben! Verwendet man die Exportsyntax von oben, dann ist zumindest mal die erste Bedingung erfüllt.
dir \\10.10.10.10\path_to_pst\*.pst | %{ New-MailboxImportRequest -Mailbox $_.BaseName -FilePath $_.FullName }
Gibt es ein *.pst File in dem Ordner für welchen das System keine Mailbo findet, dann erhält man diese rote Fehlermeldung. Das ist aber nicht weiter problematisch – in meinem Fall gibt es diesen Benutzer in der neuen Umgebung bewußt nicht mehr…
Aufräumen
Nachdem die Aufträge durch sind ist es wichtig, die fertigen Requests wieder aus der Exchange Request Liste zu entfernen (auch wenn Sie auf completed stehen, bleiben sie dort stehen!). Erledigt wird das wieder mit einem einfachen PowerShell Befehl:
Get-MailboxExportRequest -Status Completed | Remove-MailboxExportRequest
Update
12.06.2011:
- Import Syntax angepasst und um einen Massenupdate erweitert
- Outlook aus den benötigten Komponenten gelöscht
22.06.2011:
Ich hatte tatsächlich vergessen den Teil zum aufräumen der Requests im Exchange Request System vergessen zu erwähnen. Danke für den Hinweis Nils.
Zur Info, seit dem SP1 ist kein Outlook am Server notwendig.
Michael Seidl
Hi Johannes,
es zickt …
ich starte die Exchange Konsole mit Admin Rechten, habe einem (Admin) User das Recht für den Import & Export der Mailboxen gegeben und versuche nun zu exportieren … nur ich kriege immer die gleiche Fehlermeldung:
—
[PS] C:\Windows\system32>New-MailboxExportRequest -Mailbox hg -FilePath „\\PC01\Users\af\Downloads\hg.pst“
PST-Datei ‚\\PC01\Users\af\Downloads\hg.pst‘ kann nicht geöffnet werden. Fehlerdetails: Der Zugriff auf den Pfad „\\PC01\Users\af\Downloads\hg.pst“ wurde verweigert.
+ CategoryInfo : NotSpecified: (0:Int32) [New-MailboxExportRequest], RemotePermanentException
+ FullyQualifiedErrorId : 6B4B5423,Microsoft.Exchange.Management.RecipientTasks.NewMailboxExportRequest
—
af ist der Admin und hg ist der user
af kann auf der Ordner zugreifen, hat volle rechte und im explorer auch über den UNC Pfad auf diesen Ordner zugreifen, Dateien anlegen usw.
Hast Du eine Idee woran das liegen kann ? Ja, oberflächlich ein Berechtigungsproblem nur ich komm ja ran an den Pfad und kann alles machen Ordner anlegen, Dateien, löschen usw. …
Und ich habe alle möglichen Freigaben getestet, auf mehreren Rechnern … habe sogar mal zum testen einen hp.pst angelegt … hat nix gebracht …
Hast Du eine Idee ?
Danke so oder so 🙂
Gruss
Harold
Hi,
das hört sich nach einem netten Problem an. Ohne das Problem schon mal gesehen zu haben würde ich jetzt mal den Virenscanner verdächtigen und zu testzwecken mal deaktivieren – die produzieren manchmal so komische Fehler…
LG
Moin,
auf den Speicherpfad muss das Dienstkonto von Exchange Zugriffsrechte haben, im Regelfall also das Computerkonto des Exchange-Servers. Den Export führt ja gar nicht der Admin durch, sondern Exchange – eine Folge des Request-Mechanismus.
Gruß, Nils
hi,
importexportrechte vergeben hat super geklappt. meine probs tauchen danach auf. ich bekomme immer die selbe fehlermeldung, egal ob ein user oder alle.
thx!
Die Benennung „New-MailboxExportRequest“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eine
s ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enth
alten), und wiederholen Sie den Vorgang.
Bei Zeile:1 Zeichen:25
+ New-MailboxExportRequest <<<< -Mailbox user01 -FilePath "\\servver\exbackup\user01.pst"
+ CategoryInfo : ObjectNotFound: (New-MailboxExportRequest:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Hallo, ich bekomme leider auch die Fehlermeldung:
Die Benennung „new-mailboxexportrequest“ wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern enthalten), und wiederholen Sie den Vorgang.
Bei Zeile:1 Zeichen:25
+ new-mailboxexportrequest <<<< -mailbox Comcon -filepath "\\w2k8\Transfer\comcon.pst"
+ CategoryInfo : ObjectNotFound: (new-mailboxexportrequest:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException
Ich habe SBS 2011 Standard SP1 mit Exchange 2010 installiert. Brauche dringend Hilfe!
Hi,
hast du dir wie zuvor beschrieben das Recht für den Export gegeben und bist du auch mit diesem Benutzer angemeldet?
LG
Johannes
Hallo Johannes,
Danke für die schnelle Antwort.
Ja die Rechte hatte ich mir gegeben. Ich habe jetzt SP3 installiert, den Server neu gestartet und schon geht’s. Also nur mit SP1 und Updaterole 8 für SP1 kennt das System das Kommando nicht.
Gruß
Hi,
das ist komisch. Ich bin mir sehr sicher, dass mein SBS zu dem Zeitpunkt des Artikels auch noch SP1 hatte… Wobei es absolut keine schlechte Idee ist das neuste Service Pack zu installieren. Läuft danach noch alles inkl. Backup? 😉
Das Backup läuft gerade, sieht aber gut aus. Es ist der alte Firmenserver, den ich bereits ausgetauscht habe. Jetzt habe ich die Mailboxen als pst’s vorliegen und kann sie direkt in Outlook an den Clients einspielen.
Mein Problem war, daß mit ost’s gearbeitet wurde und daß diese zwar neu erstellt wurden (nach Einspielen der Exchange DB), jedoch die „alten“ Mails nicht angezeigt werden. Neue Mails sind alle da.
Danke für die Hilfe. Gruß
Und für alle, die bis hier runter scrollen, und somit fähig sind, zuerst zu Ende zu lesen:
doch, es geht IMMER.
Erstens, zuerst dem freigegebenen Ordner die entsprechende Berechtigung geben.
Zweitens, das wohl Wichtigste, was keiner kapiert: damit die Exchange-Konsone das Kommando dank der neuen Rechte kennt, einmal schliessen, und neu öffnen, TADA, Befehl neu dazugekommen, und dann klappts auch endlich mit dem Export 😉
Wie wahr,…
Nach Stunden der Suche nicht auf zwei Banalitäten gekommen:
1.) Neustart der Konsole
2.) Herunterscrollen im Blog
tz, tz, tz…
Lüppt ohne Probs…