sinzal
Goto Top

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:
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"  
PST_Sicherung.ps1:
Get-MailboxExportRequest | Remove-MailboxExportRequest -confirm:$false
(Get-Mailbox) | foreach {New-MailboxExportRequest –Mailbox $_.alias –FilePath “\\server\PST_Sicherungen\$_.pst”}
PST_verschieben.cmd:
@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  
PST_Sicherung_abbrechen.ps1:
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. face-smile

Viele Grüße,
Sinzal

Content-ID: 640138

Url: https://administrator.de/contentid/640138

Ausgedruckt am: 24.11.2024 um 17:11 Uhr

Doskias
Doskias 13.01.2021 um 16:58:20 Uhr
Goto Top
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.
7Gizmo7
7Gizmo7 13.01.2021 um 21:51:04 Uhr
Goto Top
Hi,

ich hoffe du machst trotzdem noch zusätzlich die Sicherung per Windows Backup oder wie werden deine Protokolle gelöscht. Ich verstehe auch nicht, warum der PST Export als Dauerhaftes Backup genommen wird. Der Aufwand wär mir viel zu hoch.

Mit freundlichen Grüßen
Sinzal
Sinzal 26.01.2021 um 13:01:45 Uhr
Goto Top
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
Doskias
Doskias 26.01.2021 um 13:06:12 Uhr
Goto Top
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

Kommt auf das Backup drauf an. Veeam und andere geeignete Backup-Programme können aus einem gesicherten Exchange-Server auch einzelne Mails wiederherstellen.