PowerShell + Exchange 2010: Status der Export Requests abfragen

In Exchange 2010 kann man ja schön aus der PowerShell heraus (entsprechende Rechte vorausgesetzt) Mailboxen in PST-Dateien exportieren. Hierzu erstellt man mit dem Kommando New-MailboxExportRequest einen neuen Export Request, der dann nach kurzer Zeit abgearbeitet wird. Man kann zwar die Requests am Ende mit Remove-MailboxExportrequest wieder löschen; aber es kann Situation geben, in denen man auf die erledigten/fehlgeschlagenen Requests noch zugreifen will (um z.B. den Grund für einen Fehlschlag später nachschlagen zu können). Oder man hat einfach vergessen sie zu löschen;-)

Mit dem Befehl Get-MailboxExportRequest Statistics kann man sich Informationen über einen Export Request anzeigen lassen; anbei ein Beispiel, wobei ich mich auf einige Attribute beschränke. Der Befehl

get-mailboxexportrequest -name MailboxExport7 -mailbox „fabrikam.com/Benutzer/Thomas Wallutis“ | get-mailboxexportrequeststatistics | fl name,status,filepath,sourcemailboxidentity,sourcedatabase, starttimestamp, completiontimestamp, bytestransferred, itemstransferred

führt zu der Ausgabe

Name : MailboxExport7
Status : Completed
FilePath : \\server\pst-files\thomas.wallutis.pst
SourceMailboxIdentity : fabrikam.com/Benutzer/Thomas Wallutis
SourceDatabase : Mailbox Database 0248583270
StartTimestamp : 08.09.2014 14:03:27
CompletionTimestamp : 08.09.2014 14:26:46
BytesTransferred : 1.065 GB (1,143,315,403 bytes)
ItemsTransferred : 10745

„Name“ ist hierbei der Name des Export Requests, wobei Requests je anch Art des Aufrufs auch denselben Namen haben können. Interessant ist hierbei nun das Attribut „StartTimeStamp“, wenn ich mir alle Requests anzeigen lassen will, die zur selben Zeit gestartet sind. „CompletionTimestamp“ ist etwas problematisch, da ein fehlerhafter Export Request (z.B. mit falschem Parameter) auch ind er Liste auftaucht, aber das Attribut ist dann leer.

Das Interessante bei Filtern im Zusammenhang mit PowerShell ist, welcher Filter der gerade Passende ist. Im hierbetrachteten Fall möchte ich alle Requests sehen, die am selben Tag gestartet sind; allerdings ohne Angabe der Uhrzeit. Der passende Vergleichsoperator ist dann „-match“, da er auf passende Teilausdrücke prüft:

get-mailboxexportrequest | get-mailboxexportrequeststatistics | where { $_.StartTimeStamp -match „09.09.2014 „} | fl sourcemailboxidentity, status

Dieser Aufruf gibt mir alle Mailboxen zurück, die am betreffenden Tag exportiert wurden (unabhängig davon ob der Export erfolgreich war).

Vielen Dank an Andreas E. für den Tipp mit „-match“.