Jump to content

Eventlog files parsen nach Inhalt mit Powershell


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

Empfohlene Beiträge

Hallo an alle im Board,

ich versuche schon seit einiger Zeit eine Lösung zu erarbeiten bzgl. der parsen von Logfiles in untergeordneten Ordnern per Powershell.

folgende Idee:

Ich suche in einem Ordner nach alle *sysevent.evt Files und extrahiere den gesamten Pfad. Mit der Pipe übergeben ich den Pfad an den Befehl Get-WinEvent und filtere nach der Event-ID 10, welche wieder auf den Properties Wert 5 gefiltert werden. Damit möchte ich die byte Anzahl aller Druckaufträge als Ergbnis erhalten.

Leider funktioniert dieses nicht bei der Übergabe des Pfads

Alle Dateien liegen unter H:\tmp\Drucker-Statistiken_10-2012\09-30-2012-EventLog-%hostname%\09-30-2012-sysevent.evt

dir -Recurse -filter *sysevent.evt | select name, fullname | Get-WinEvent -oldest | where {$_.id -eq "10"} | ForEach-Object{"$($_.Properties[5].Value)"}

 

Folgender Fehler erscheint:

Get-WinEvent : There is not an event log on the localhost computer that matches "@{Name=09-30-2012-system.evt; FullName=H:\tmp\Drucker-Statistiken_10-2012\09-30-2012-EventLog-server\09-30-2012-sysevent.evt}".

At line:1 char:74

+ dir -Recurse -filter *sysevent.evt | select name, fullname | Get-WinEvent <<<< -oldest | where {$_.id -eq "10"} | ForEach-object{"$($_.Properties[5].Value)"}

+ CategoryInfo : ObjectNotFound: (@{Name=09-30-20...2-sysevent.evt}:String) [Get-WinEvent], Exception

+ FullyQualifiedErrorId : NoMatchingLogsFound,Microsoft.PowerShell.Commands.GetWinEventCommand

 

Vielen Dank an Euch..

Link zu diesem Kommentar

Cool, habs mal so gelöst:

Pfad in Variablen, Datei mit meinen Druckern eingelesen und für jeden Drucker in's Pfad-Verzeichnis gewechselt. Diesen baut er korrekt je Server zusammen..

Dann wertet er pro Serverordner die Systemlog Datei auf print Events aus und extrahiert daraus die byte-Anzahl..

 

$directory = "H:\tmp\Drucker-Statistiken_10-2012\09-30-2012-EventLog-"

$evtfile = "\09-30-2012-sysevent.evt"

$ausgabe

Get-content H:\tmp\Drucker-Statistiken_10-2012\Auswertung\printserver.txt | ForEach-Object {$directory + $_ + $evtfile} | ForEach-Object {Get-WinEvent -oldest -path $_ | where {$_.id -eq "10"} | ForEach-Object{"$($_.Properties[5].Value)"}}

 

Da ich nun noch die Seitenanzahl herausfiltern will, sollen beide Werte in eine csv Excel Datei. Geht dieses auch in zwei unterschiedl. Spalten oder Sheets?

 

Danke an alle...

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...