Das Beispiel auf Seite 27

… ist zum spontanen Abtippen vermutlich etwas lang, wenngleich sich der Aufwand lohnt, da man gleich am Anfang nicht nur einiges über die PowerShell und ihre Philosophie lernt, sondern auch gleich die erforderliche „Disziplin und Ausdauer“, die für das Erlernen der PowerShell erforderlich ist, unter Beweis stellen muss (Motto „Ohne Fleiß, kein Preis“ oder auf Neudeutsch „No pain, no gain“).

Trotzdem für alle, die vor allem an einem Erfolgserlebnis interessiert sind, hier der „kleine“ Befehl noch einmal zum Einfügen in die PowerShell-ISE:

# -------------------------------------------------------------
# Auswerten von IIS-Logfiles
# PowerShell Crashkurs 2.0 - Das Beispiel auf Seite 27
# -------------------------------------------------------------
# Wichtig: Logs-Pfad muss Unterverzeichnis in dem Verzeichnis sein, in dem das Skript ausführt
$SkriptPfad = Split-Path -Path $MyInvocation.MyCommand.Path
$LogPfad = Join-Path -Path $SkriptPfad -ChildPath Logs\*.log
Select-String -Path $LogPfad -Pattern `
 "^[0-9]{2}:[0-9]{2}:[0-9]{2}\s(?<IP>[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}).*" | `
 Select-Object @{ Name="Wochentag";Expression={Get-Date -Format "dddd" ($_.Filename.SubString(2,6) -replace `
                  '(?<Jahr>[0-9]{2})(?<Monat>[0-9]{2})(?<Tag>[0-9]{2})',
                  '${Tag}.${Monat}')}},  `
                  @{Name="IP-Adresse";Expression={$_.Matches[0].Groups["IP"].Value }} | `
 Group-Object WochenTag | Select-Object Name, Count | Sort-Object Count -Descending | `
 Format-Table -Auto

Gegenüber dem Beispiel auf Seite 27 aus dem Buch wird der Wochentag auf Deutsch ausgegeben, da der Wochentag über den Format-Parameter aus dem Datum extrahiert wird und nicht über die DayOfWeek-Property des DateTime-Objekts. Dies ist die aus meiner persönlichen Sicht etwas empfehlenswertere Variante, da keine .NET-Funktionalität verwendet wird, die nicht in der PowerShell-Hilfe beschrieben wird und daher immer etwas „insidermäßiges“ hat, was gerade am Anfang keine Rolle spielen sollte (so ganz habe ich mit diesem Beispiel die mir selber auferlegte Anforderung nur „PowerShell-Syntax“ zu verwenden noch nicht umgesetzt  – diese Einsicht „reifte“ auch mehr während das Buch entstand)

Tipp: Mit den PowerGadgets von SoftwareFx und deren Out-Chart-Cmdlet lässt sich die Statistik sehr schön in einem Diagramm ausgeben – anstelle von Format-Table muss lediglich ein Out-Chart angehängt werden.  Die PowerShell Gadgets sind keine Freeware, mit 99 US$ aber relativ preiswert (lediglich der Umstand, dass man auf der Webseite ausschließlich per Kredikarte und nicht z.B. per Paypal bezahlen kann stört mich etwas).

Der Output wird mit Out-Chart aus den PowerGadgets angezeigt

Schreibe einen Kommentar

Bitte logge dich mit einer dieser Methoden ein, um deinen Kommentar zu veröffentlichen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s