PST-Export aus Exchange Server 2019 mit Batch hängt sich auf
Hallo Admins,
ich habe ein etwas verzwicktes Problem, an dem ich schon eine ganze Weile arbeite. Leider ist mir bisher keine Lösung über den Weg gelaufen. Eine von mir selbst geschriebene Sicherung von Mails aus dem MS Exchange Server eines Kundenservers auf eine externe Festplatte bleibt täglich hängen und verklemmt den Server auch in einer Weise, dass ein Neustart zum Weiterarbeiten nötig ist.
Hier die Einzelheiten:
Versionen:
Server-OS: Windows Server 2019 Standard 64bit Version 1809
Exchange Server: MS Exchange Server 2019 Cumulative Update 7, vers.15.2.721.2
Ablauf der Sicherung:
- mit einem ersten Batch-Skript PST_Sicherung.cmd sichere ich alle Postfächer als PST ins Verzeichnis K:\PST_Sicherungen\. Dabei startet die Batch den Export-Befehl innerhalb des Skripts PST_Sicherung.ps1, welcher dann automatisch im Hintergrund vom Exchange ausgeführt wird. Nach meiner Erfahrung startet dieser Export in regelmäßigen Abständen wieder.
- mit einem zweiten Batch-Skript PST_verschieben.cmd beende ich alle noch laufenden Exporte aus Exchange mithilfe des Skripts PST_Sicherung_abbrechen.ps1. Ich warte eine bestimmte Wartezeit, bevor die exportierten PST-Dateien aus dem Export-Verzeichnis K:\PST_Sicherungen\ auf meine externe Festplatte ins Verzeichnis E:\Sicherungen\ verschoben werden.
- die Skripte werden von der lokalen Aufgabenplanung des Windows Servers zeitgesteuert ausgeführt, sodass PST_verschieben.cmd im Abstand von 12 min nach PST_Sicherung.cmd startet. (Anmerkung: Nach einem manuellen Ausführen der Sicherung wurde ermittelt, dass die PST-Sicherung ca. 7 min zum Durchlaufen benötigt; mit 5 min Puffer habe ich deshalb 12 min Wartezeit eingestellt.)
Problem:
Beim Ausführen des zweiten Skripts bleibt das Verschieben auf die externe Festplatte immer bei der letzten PST-Datei hängen. Dabei verklemmt sich der Server derart gründlich, dass kaum noch ein Arbeiten im Windows-Explorer, geschweige denn in anderen Programmen möglich ist. Erst nach einem Neustart lässt es sich wieder vernünftig arbeiten. Fehlermeldungen gibt es leider keine. Auch die Ereignisanzeige liefert nichts Spezifisches, das mir aufgefallen wäre.
Was mir rätselhaft ist:
Diese Version der E-Mail-Sicherung habe ich bei verschiedenen anderen Servern (MS Win 2016 Standard und MS Win 2019 Standard) und Exchange-Versionen (MS Exchange 2016 und MS Exchange 2019) auch im Einsatz. Bei diesen tritt der beschriebene Fehler nicht auf. Ich bin etwas ratlos, warum genau bei diesem einen Server der Fehler erscheint.
Quellcodes:
PST_Sicherung.cmd:
PST_Sicherung.ps1:
PST_verschieben.cmd:
PST_Sicherung_abbrechen.ps1:
Habt Ihr eine Idee, woran meine Sicherung scheitern könnte? Ist Euch dieser Fehler in der Art schon selbst über den Weg gelaufen? Gibt es ggf. Verbesserungsvorschläge?
Vielen Dank im Voraus.
Viele Grüße,
Sinzal
ich habe ein etwas verzwicktes Problem, an dem ich schon eine ganze Weile arbeite. Leider ist mir bisher keine Lösung über den Weg gelaufen. Eine von mir selbst geschriebene Sicherung von Mails aus dem MS Exchange Server eines Kundenservers auf eine externe Festplatte bleibt täglich hängen und verklemmt den Server auch in einer Weise, dass ein Neustart zum Weiterarbeiten nötig ist.
Hier die Einzelheiten:
Versionen:
Server-OS: Windows Server 2019 Standard 64bit Version 1809
Exchange Server: MS Exchange Server 2019 Cumulative Update 7, vers.15.2.721.2
Ablauf der Sicherung:
- mit einem ersten Batch-Skript PST_Sicherung.cmd sichere ich alle Postfächer als PST ins Verzeichnis K:\PST_Sicherungen\. Dabei startet die Batch den Export-Befehl innerhalb des Skripts PST_Sicherung.ps1, welcher dann automatisch im Hintergrund vom Exchange ausgeführt wird. Nach meiner Erfahrung startet dieser Export in regelmäßigen Abständen wieder.
- mit einem zweiten Batch-Skript PST_verschieben.cmd beende ich alle noch laufenden Exporte aus Exchange mithilfe des Skripts PST_Sicherung_abbrechen.ps1. Ich warte eine bestimmte Wartezeit, bevor die exportierten PST-Dateien aus dem Export-Verzeichnis K:\PST_Sicherungen\ auf meine externe Festplatte ins Verzeichnis E:\Sicherungen\ verschoben werden.
- die Skripte werden von der lokalen Aufgabenplanung des Windows Servers zeitgesteuert ausgeführt, sodass PST_verschieben.cmd im Abstand von 12 min nach PST_Sicherung.cmd startet. (Anmerkung: Nach einem manuellen Ausführen der Sicherung wurde ermittelt, dass die PST-Sicherung ca. 7 min zum Durchlaufen benötigt; mit 5 min Puffer habe ich deshalb 12 min Wartezeit eingestellt.)
Problem:
Beim Ausführen des zweiten Skripts bleibt das Verschieben auf die externe Festplatte immer bei der letzten PST-Datei hängen. Dabei verklemmt sich der Server derart gründlich, dass kaum noch ein Arbeiten im Windows-Explorer, geschweige denn in anderen Programmen möglich ist. Erst nach einem Neustart lässt es sich wieder vernünftig arbeiten. Fehlermeldungen gibt es leider keine. Auch die Ereignisanzeige liefert nichts Spezifisches, das mir aufgefallen wäre.
Was mir rätselhaft ist:
Diese Version der E-Mail-Sicherung habe ich bei verschiedenen anderen Servern (MS Win 2016 Standard und MS Win 2019 Standard) und Exchange-Versionen (MS Exchange 2016 und MS Exchange 2019) auch im Einsatz. Bei diesen tritt der beschriebene Fehler nicht auf. Ich bin etwas ratlos, warum genau bei diesem einen Server der Fehler erscheint.
Quellcodes:
PST_Sicherung.cmd:
rem Diese Zeile löscht das alte Sicherungsverzeichnis:
del k:\PST_Sicherungen\*.* /q
PowerShell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\skripte\PST_Sicherung.ps1"
Get-MailboxExportRequest | Remove-MailboxExportRequest -confirm:$false
(Get-Mailbox) | foreach {New-MailboxExportRequest –Mailbox $_.alias –FilePath “\\server\PST_Sicherungen\$_.pst”}
@echo off
rem Laufende Exchange-Exportrequests beenden
PowerShell.exe -command ". 'C:\Program Files\Microsoft\Exchange Server\V15\bin\RemoteExchange.ps1'; Connect-ExchangeServer -auto; C:\skripte\PST_Sicherung_abbrechen.ps1"
rem 30 sek warten; dann sollten die laufenden Requests beendet sein
timeout /T 30 /nobreak
rem Verschieben der PST-Dateien
copy "k:\PST_Sicherungen\*.pst" e:\Sicherungen /y
del "k:\PST_Sicherungen\*.pst" /q
Get-MailboxExportRequest | Remove-MailboxExportRequest -confirm:$false
Habt Ihr eine Idee, woran meine Sicherung scheitern könnte? Ist Euch dieser Fehler in der Art schon selbst über den Weg gelaufen? Gibt es ggf. Verbesserungsvorschläge?
Vielen Dank im Voraus.
Viele Grüße,
Sinzal
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 640138
Url: https://administrator.de/contentid/640138
Ausgedruckt am: 24.11.2024 um 17:11 Uhr
4 Kommentare
Neuester Kommentar
Moin,
Ich fang mal hinten an bei den Verbesserungsvorschlägen: Wieso mischt du Batch und PowerSchell? Du kannst alles in einem einzigen Skript machen. So bist du dann auch sicher, dass die Vorgänge abgeschlossen sind. Außerdem bekommst du im PS aussagekräftigere Fehlermeldungen.
Also mein Tipp:
Mach alles in einem PS Skript. Das kannst du dann auch zeilenweise testen und siehst dann wo er sich (vermeintlich?) aufhängt.
Ich fang mal hinten an bei den Verbesserungsvorschlägen: Wieso mischt du Batch und PowerSchell? Du kannst alles in einem einzigen Skript machen. So bist du dann auch sicher, dass die Vorgänge abgeschlossen sind. Außerdem bekommst du im PS aussagekräftigere Fehlermeldungen.
Also mein Tipp:
Mach alles in einem PS Skript. Das kannst du dann auch zeilenweise testen und siehst dann wo er sich (vermeintlich?) aufhängt.
Zitat von @Sinzal:
Hallo,
erstmal vielen Dank für die Kommentare und Infos.
Aktuell habe ich mich mit dem Kunden darauf geeinigt, dass wir nur das Windows Backup laufen lassen. Es ist zwar einfacher, im Falle des Crashs eines Postfachs (oder einer unbeabsichtigten Löschung durch Nutzer) Mails aus einer PST wiederherzustellen, als sie aus dem Backup zurückzuholen, aber diese Variante geht hier eben auch.
Viele Grüße,
Sinzal
Hallo,
erstmal vielen Dank für die Kommentare und Infos.
Aktuell habe ich mich mit dem Kunden darauf geeinigt, dass wir nur das Windows Backup laufen lassen. Es ist zwar einfacher, im Falle des Crashs eines Postfachs (oder einer unbeabsichtigten Löschung durch Nutzer) Mails aus einer PST wiederherzustellen, als sie aus dem Backup zurückzuholen, aber diese Variante geht hier eben auch.
Viele Grüße,
Sinzal
Kommt auf das Backup drauf an. Veeam und andere geeignete Backup-Programme können aus einem gesicherten Exchange-Server auch einzelne Mails wiederherstellen.