Jump to content

Exchange 2010: Get-MessageTrackingLog Ausgabeoption


Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo zusammen,

 

ich habe folgende Aufgabe bekommen: ich soll alle Mailadressen sammeln, an die wir schreiben und zwar an alle unsere Partner weltweit. Zweck des ganzen ist es einen Mailverteiler aufzubauen, wo wir unseren Partnern mitteilen, wenn in Deutschland ein Feiertag und daher das Büro nicht besetzt ist. Unsere Partner senden uns deren Feiertage ebenso. 

 

Nach vielem Suchen über Google bin ich auf Get-MessageTrackingLog gestoßen und habe mir folgenden Befehl erstellt:

Get-MessageTrackingLog –Start (Get-Date).AddHours(-1) –Resultsize Unlimited -EventId "Send" | Where-Object {$_.sender –like "*@meinedomain.de"} > C:\mailadress.txt

Das funktioniert im Prinzip schon mal, aber ich habe noch einige Punkte zur Verbesserung:

 

1. Zum Testen frage ich ja nur die Daten der letzten Stunde ab. Wie finde ich heraus, wie weit die Logs zurückgehen?

2. Wie kann ich die Ausgabe beinflussen? Ich bekomme jetzt 5 Spalten, von denen mich eigentlich nur die Spalte Recipients interessiert. Wer die Mails gesendet hat oder der Betreff interessieren mich nicht.

3. Das Problem in der Ergebnisdatei ist auch, dass die Spalte Recipients zu schmal ist und manche Adressen nicht vollständig erscheinen, sondern mit ... enden.

4. Das dritte Problem ist, dass manchmal ja mehrere Empfänger in der Spalte Recipients stehen. Bekomme ich die auch irgendwie einzeln?

 

Ist das mit Get-MessageTrackingLog überhaupt der richtige Ansatz oder gibt es da was besseres?

 

Ich kenne mich weder mit Powershell, noch mit Exchange besonders gut aus, daher verzeiht bitte meine Fragen.

 

Vielen Dank.

Joschi

Link zu diesem Kommentar

1. Zum Testen frage ich ja nur die Daten der letzten Stunde ab. Wie finde ich heraus, wie weit die Logs zurückgehen?

 

Führe in der EMC folgenden Befehl aus: Get-TransportServer SERVERNAME | fl *Tracking*

 

Danach siehst Du, wie lange die Log-Dateien aufbewahrt werden - Standard sind 30 Tage.

 

2. Wie kann ich die Ausgabe beinflussen? Ich bekomme jetzt 5 Spalten, von denen mich eigentlich nur die Spalte Recipients interessiert. Wer die Mails gesendet hat oder der Betreff interessieren mich nicht.

 

 

Get-MessageTrackingLog –Start (Get-Date).AddHours(-1) –Resultsize Unlimited -EventId "Send" | Where-Object {$_.sender –like "*@meinedomain.de"} | Select-Object Recipients > C:\mailadress.txt

 

 

3. Das Problem in der Ergebnisdatei ist auch, dass die Spalte Recipients zu schmal ist und manche Adressen nicht vollständig erscheinen, sondern mit ... enden.

 

Sollte sich mit dem Befehl oben ändern.

 

BTW: Ich würde das Schreiben in die Datei lieber mit Export-CSV durchführen, also:

 

 

Get-MessageTrackingLog –Start (Get-Date).AddHours(-1) –Resultsize Unlimited -EventId "Send" | Where-Object {$_.sender –like "*@meinedomain.de"} | Select-Object Recipients | Export-CSV C:\mailadress.txt

 

 

4. Das dritte Problem ist, dass manchmal ja mehrere Empfänger in der Spalte Recipients stehen. Bekomme ich die auch irgendwie einzeln?

 

Prinzipiell schon, aber nicht mit einem Aufruf. In dem Feld stehen immer alle Empfänger drin und es ist ein mehrwertiges Objekt. Das kann man zwar auftrennen, aber nicht mehr in einem Einzeiler.

 

Ist das mit Get-MessageTrackingLog überhaupt der richtige Ansatz oder gibt es da was besseres?

 

Das ist schon OK. Du kannst auf das SMTP-Protokoll auswerten, müsstest das aber per Hand machen.

 

Ich kenne mich weder mit Powershell, noch mit Exchange besonders gut aus, daher verzeiht bitte meine Fragen.

 

Ein Forum ist kein guter Ort, die absoluten Grundlagen der PowerShell zu lernen.

 

Mit dem ersten Befehl oben findest Du den Ort der Log-Dateien heraus. Das CSV-Dateien im Textformat, als eventuell hast Du für Dich auch ein besseres Werkzeug (Excel, o.ä).

Link zu diesem Kommentar

Hallo Robert,

 

erst mal Danke für die ausführliche Antwort.

 

Das hat mir schon sehr weitergeholfen. Das Trennen der einzelnen Mailadressen in einer Zeile kann ich auch nachgelagert machen, das sollte nicht das Problem sein. Allerdings wird in einer Zeile bei mehreren Mailadressen auch wieder die Zeile abgeschnitten, heißt endet nach ca. 120 Zeichen mit ... Kann man da noch was machen oder muss ich damit leben?

 

Beim zweiten Befehl, dem Export als CSV bekomme ich folgendes Ergebnis:

 

#TYPE Selected.Microsoft.Exchange.Management.TransportLogSearchTasks.MessageTrackingEvent
"Recipients"
"System.String[]"
"System.String[]"
"System.String[]"
"System.String[]"
"System.String[]"
"System.String[]"
.....

 

Ist schon klar, dass das hier kein guter Ort ist um die Basics der Powershell zu lernen. Ich habe aber sonst damit eigentlich keine Berührungspunkte und hoffe, dass es bald wieder einen Kollegen hier gibt, der sich mit Exchange und mit Powershell auskennt.

 

Viele Grüße

 

Joschi

 

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...