2016-04-13 9 views
-1

Ich versuche, Windows-Server-Ereignisprotokolle in eine Textdatei zu importieren/zu lesen, mit einem wevtutil Befehl. Ich verwende den folgenden Befehl meine Protokolle zu schreiben, um File.txt:wevtutil Abfrage zum Schreiben einer Ausgabe in einer einzigen Zeile

$ wevtutil qe Application \rd:true \f:text (liest Anwendungsprotokolle) und die Beispielausgabe meines Befehls ist:

Event[1]: 
    Log Name: Application 
    Source: Microsoft-Windows-Security-SPP 
    Date: 2016-03-29T13:02:27.000 
    Event ID: 8196 
    Task: N/A 
    Level: Information 
    Opcode: N/A 
    Keyword: Classic 
    User: N/A 
    User Name: N/A 
    Computer: WIN-IONOGQTF9O5 
    Description: License Activation Scheduler (sppuinotify.dll) 

Event[2]: 
    Log Name: Application 
    Source: Microsoft-Windows 
    Date: 2016-06-29T13:02:57.000 
    Event ID: 3444 
    Task: N/A 
    Level: Critical 
    Opcode: N/A 
    Keyword: Classic 
    User: N/A 
    User Name: N/A 
    Computer: WIN-IONOGDFFF9O5 
    Description: AIRO.Activation code(sppuinotify.dll) 

(Eigentlich zwei Beispielprotokolle). aber ich möchte mein Protokoll als eine einzige Zeile in TXT-Datei schreiben, anstatt die obige mehrzeilige Ausgabe für ein einzelnes Protokoll. gibt es ein wevtutil command Dienstprogramm ein Protokoll auf eine einzige Zeile zu schreiben, wie unten:

Event[1]:Log Name: Application Source: Microsoft-Windows-Security-SPP Date: 2016-03-29T13:02:27.000 Event ID: 8196 Task: N/A Level: Information Opcode: N/A Keyword: Classic User: N/A User Name: N/A Computer: WIN-IONOGQTF9O5 Description: License Activation Scheduler (sppuinotify.dll) 
Event[2]:Log Name: Application Source: Microsoft-Windows Date: 2016-03-29T13:02:27.000 Event ID: 8196 Task: N/A Level: Information Opcode: N/A Keyword: Classic User: N/A User Name: N/A Computer: WIN-IONOGQTF9O5 Description: License Activation Scheduler (sppuinotify.dll) 

Dank!

+0

, wenn Sie die integrierten Befehle wie 'get-eventlog' anstelle des Dienstprogramms verwenden, können Sie das Ausgabeformat wie Sie will – Paul

+0

@Paul: Danke für Ihre Antwort, aber die Ausgabe von get_eventlog und wevtutil sind total anders! –

+0

Die Ereignisse, die get-eventlog ausgibt, enthalten so ziemlich alle Informationen, die in Ihrer Beispielausgabe von wevtutil enthalten sind ... Sie müssen nur die Daten zusammenstellen, wie Sie es wollen, und sie in einer Datei speichern – Paul

Antwort

0
$logname = "Application"  
$events = Get-EventLog -LogName $logname 

$arr = @() 
$counter = 1 

foreach($event in $events){ 
$arr += "Event[$counter]:Log Name: $logname Source: $($event.Source) Date: $($event.TimeWritten) Event ID: $($event.EventID) Task: $($event.Category) Level: $($event.EntryType) ..." 
$counter++ 
} 

$arr | out-file events.txt 

Wenn Sie Opcode haben müssen, Keyword usw. verwenden Get-Winevent statt Get-Eventlog