...auf Kiel gelegt...

ExilKieler's Abwurfstelle 
Filed under

Sysadmin

 

Heureka die 2. - PowersHell

Mal wieder für diejenigen, die es interessiert:

Nachdem wir am 4.8. das Recipient-Array in der Ausgabe des Messagetracking-Logs aufgelöst ausgegeben haben, wandeln wir das Ganze jetzt so um, dass jeder Recipient in einer eigenen Zeile in einem benutzerdefinierten Logfile auftaucht.

$sent=@(Get-MessageTrackingLog -server $MyServer -start $Start -end $End -EventID SEND -ResultSize unlimited |Where-Object{$_.Source -eq "SMTP"} | Select TimeStamp, MessageId, ServerIP, EventID, Source, Sender, @{Name="Recipients";Expression={$_.recipients}}, RecipientCount, totalbytes | Sort-Object -property timestamp )

ForEach($item in $sent) 
{
#Recipients aufdröseln
    For ($i=0;$i -lt $item.RecipientCount;$i++)
    {
        if ($item.RecipientCount -eq 1)
            { $test = $item.Recipients }
        else
            { $test = $item.Recipients[$i]}

#Jeden Recipient in eigenem row-Datensatz (Hashtable) speichern

        $row = @{}  #Felder: TimeStamp, MessageId, ServerIP, EventID, Source, Sender, SingleRecipient, RecipientCount, totalbytes
        $row.TimeStamp = $item.TimeStamp
        $row.MessageID = $item.MessageId
        $row.ServerIP = $item.ServerIP
        $row.EventID = $item.EventID
        $row.Source = $item.Source
        $row.Sender = $item.Sender
        $row.SingleRecipient = $test
        $row.RecipientCount = $item.RecipientCount
        $row.totalbytes = $item.totalbytes

#Da die Ausgabe eines Arrays aus Hashtables in die Hose geht, wird hier die $row-Hashtable in ein PSObject umgewandelt

        $myrowobj = New-Object PSObject
        $myrowobj = ConvertTo-Object $row

#Datensatzobjekt in Ergbnisliste schreiben
        $ergebnis += $myrowobj
    }
}

#ergebnis in CSV-Datei ausgeben
$ergebnis | export-csv c:\ausgabe.csv


Um die Hashtable in ein Powershell-Objekt umzuwandeln, benötigen wir die folgende kleine Funktion:

function ConvertTo-Object($hashtable) #konvertiert Hashtable in PSObjekt
{
    $object = New-Object PSObject
    $hashtable.GetEnumerator() |
    ForEach-Object
        { Add-Member -inputObject $object -memberType NoteProperty -name $_.Name -value $_.Value }
    return $object
}

Das Ganze ist mit großer Wahrscheinlichkeit von hinten durch die Brust ins Auge geschossen und wer eine bessere Idee hat, darf sie gerne in die Comments schreiben, aber es funktioniert. :-)

Filed under  //   Scripting   Sysadmin  

Comments [0]

HEUREKA!

Falls es jemanden interessiert:

Wenn jemand mal ein Exchange 2007 Messagetrackinglog mit der Powershell gefiltert in eine CSV-Datei ausgeben will, und sich ärgert, dass die Recipients in ein System.String[] Array verpackt sind, dann kann man das wie folgt auflösen:

Get-Transportserver | Get-MessageTrackingLog -start $Start -end $End  -EventID RECEIVE -ResultSize unlimited |Where-Object{$_.Source -eq "SMTP"} | Select TimeStamp, EventID, Source, @{Name="Recipients";Expression={$_.recipients}}, RecipientCount, totalbytes | Sort-Object -property timestamp | export-csv c:\myExport.csv

Alle anderen, denen das schon bekannt war - ich bin zur Zeit schon mit kleinen Dingen sehr glücklich... und denen, die das nicht die Bohne interessiert: Sorry für den Ausbruch... ;-)

Filed under  //   Scripting   Sysadmin  

Comments [0]

Sysadminday 2009

Heute ist der 31. Juli 2009 - "System Administrator Appreciation Day".

"Auf den Schultern der Administratoren lastet sehr viel Verantwortung, die wir wie jeden letzten Freitag im Juli mit dem System Administrator Appreciation Day würdigen. Dankbare Nutzer sollten allerdings von eher konventionellen Geschenken wie Socken, Oberhemden, Schlipsen oder gar einem Blumenstrauß Abstand nehmen: Deutlich mehr Dankbarkeit ernten sie mit Technik-Spielzeug neuster Bauart wie es sich beispielsweise bei ThinkGeek findet. Nahrungsmittel-Präsente sollten Koffein enthalten oder einen hohen Zuckeranteil haben. Eine spontane Büro-Party gilt als genehm, aber nicht zwingend erforderlich."
[Quelle: http://www.heise.de/newsticker/SysAdminDay-2009-Ein-Hoch-auf-den-Administrator--/meldung/142817]


Schön, dass wir wenigstens selbst an uns denken... Eure Sysadmins... ;-)

Filed under  //   Online   Sysadmin  

Comments [0]