Im vorherigen Blog schrieb ich über die Nachrichtenverfolgung in der Exchange-Management-Shell. Der Befehl in der Shell ist wesentlich mächtiger als die GUI, aber die Ausgabe ist leider nicht so schön. Aber dagegen kann man ja was machen.
Die Ausgabe kann relativ einfach über den Select-Befehl formatiert werden.
Die wichtigsten Angaben wären hier vermutlich:
- timestamp
- eventid
- sender
- recipients
- messagesubject
- messageid
Eine Liste aller möglichen Angaben findet man z.B.: hier (Technet)
Eine einfache Ausgabe mit Uhrzeit, eventid, sender und Betreff könnte etwa so aussehen.
1 |
[PS] C:\>Get-MessageTrackingLog -start "12/18/2014" -end "12/21/2014 14:00:00" -eventid "RECEIVE" -resultsize unlimited | select timestamp,eventid,sender,messagesubject |
Würde man jetzt noch die Empfänger hinzunehmen, reicht die Fensterbreite der Shell nicht mehr aus und die Ausgabe erfolgt in Blöcken.
Die einzelnen Felder stehen dann untereinander. Hier stellt sich letztendlich die Frage, was man als übersichlticher empfindet. Für die schnelle Suche ist sicherlich die Tabellenform besser, für eine detailiertere Suche sind mehr Angaben von Vorteil.
Eine weitere interessante Geschichte ist der Export der Ausgaben.
Dazu steht der Befehl „export-csv“ zur Verfügung, der als einzigen Parameter eine Pfad- und Dateiangabe benötigt.
Ein einfacher Befehl könnte lauten:
1 |
[PS] C:\>Get-MessageTrackingLog -start "12/18/2014" -end "12/21/2014 14:00:00" -eventid "RECEIVE" -resultsize unlimited | export-csv c:\test.csv |
Im Gegensatz zur Konsolenausgabe werden im Standard wesentlich mehr Felder ausgegeben.
Einziger Wehrmutstropfen: es wird anstatt der Empfänger lediglich ein „SYSTEM STRING []“ ausgegeben.
Um das zu umgehen bleibt nur der Weg einer modifizierten „Select“-Abfrage.
Die Syntax für die Angabe der Empfänger lautet:
@{Name=’Recipients’;Expression={[string]::join(„;“, ($_.Recipients))}}
Ein Befehl müsste demnach so aussehen:
1 |
[PS] C:\>Get-MessageTrackingLog -start "12/18/2014" -end "12/21/2014 14:00:00" -eventid "RECEIVE" -resultsize unlimited | select timestamp,eventid,sender,@{Name=’Recipients’;Expression={[string]::join(";", ($_.Recipients))}},messagesubject | export-csv c:\test.csv |
Mehrere Empfänger-Adressen werden durch einen „;“ getrennt dargestellt (das Trennzeichen wird beim join-Befehl angegeben).