Query-windows-Ereignisprotokoll für die letzten zwei Wochen
Ich versuche zu exportieren, windows event log, aber begrenzen Sie die exportierten Ereignisse nicht nach der Anzahl sondern nach der Zeit des Ereignisses angemeldet war. Ich bin versucht zu tun, die auf windows 7 und neuer. Bisher sind meine Bemühungen konzentriert sich auf die Verwendung von wevtutil.
Ich bin mit wevtutil und meine Kommandozeile ist nun: wevtutil Application events.evtx
hier Das problem, dass ich den export der log-und diese können sehr groß werden, so will ich, um ihn zu begrenzen, nur um die letzten 2 Wochen.
Habe ich gefunden diese post, aber Erstens scheint es nicht zu produzieren, keine Ausgabe auf meinem system(ja, ich habe geändert, die Termine und die Zeit) und zweitens scheint es abhängig zu sein, auf das Datum-format, das versuche ich zu vermeiden.
Hier ist der geänderte Befehl, den ich ran:
wevtutil qe Application "/q:*[System[TimeCreated[@SystemTime>='2012-10-02T00:00:00' and @SystemTime<'2012-10-17T00:00:00']]]" /f:text
Ich hatte zu ersetzen, die <
und >
mit den tatsächlichen Symbolen wie ich ein syntax-Fehler sonst. Dieser Befehl erzeugt leere Ausgabe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich weiß nicht, wie fühlen Sie sich über die PowerShell, aber es ist auf alle Systeme, die Sie markiert.
Aus einer powershell-Eingabeaufforderung finden Sie unter " Get-Help Get-EventLog -Beispiele für mehr info.
Wenn Sie dazu an einer .cmd oder .bat-Datei, dann können Sie anrufen powershell.exe -Datei powershell_script_file_name
wo powershell_script_file_name hat die Get-EventLog-Befehl(en), die Sie brauchen, in ihm.
Diesem Beispiel gibt allen die Sicherheit Ereignisprotokoll-Fehler, die ich verwenden, um audit-Systeme:
Das problem ist, da /q: wird innerhalb von Anführungszeichen. Es sollte draußen sein, wie:
Das funktioniert gut für mich.
Für die Ereignisse der letzten 2 Wochen, konnte man auch mit
timediff
zu vermeiden Sie hart codierte Daten.Windows verwendet Millisekunden, so wäre es 1000 * 86400 (Sekunden = 1 Tag) * 14 (Tage) = 1209600000.
Für die Abfrage Aussehen würden, wie
Fügte ich
/c:1
man nur 1 event in der Beispiel, da gibt es viele Ereignisse in den letzten 2 Wochen.Können Sie auch wollen, um nur eine Liste Warnung und Fehler. Für die, die Sie verwenden können
(Level=2 or Level=3)
. (Aus irgendeinem GrundLevel<4
scheint nicht zu funktionieren für mich auf Win7)Habe ich dringend empfohlen,
LogParser
für diese Art der Aufgabe:Mit
query.sql
mit so etwas wie dieses:Die etwas unintuitive Datum Berechnung wandelt die Systemzeit (
SYSTEM_TIMESTAMP()
) in eine Ganzzahl (TO_INT()
), subtrahiert 1209600 Sekunden (60 * 60 * 24 * 14 = 2 Wochen) und wandelt das Ergebnis zurück in einen timestamp (TO_TIMESTAMP()
), so dass das Datum von vor 2 Wochen.Können Sie parametrieren die Zeitspanne durch den Austausch der festen Anzahl von Sekunden mit
MUL(86400, $days)
und ändern Sie die Befehlszeile, um dieses:Du kannst auch die Abfrage direkt zu logparser:
LogParser
ausführbare Datei und DLL in ein Verzeichnis Ihrer Wahl und führen Sie es von dort, aber das ist deine Entscheidung, natürlich.