Wie würde ich das Windows-Anwendungsprotokoll in regelmäßigen Abständen sichern?
-
22-08-2019 - |
Frage
Ich arbeite mit einer Anwendung, die sich regelmäßig im Windows-Anwendungsprotokoll protokolliert (sichtbar über das Verwaltungstool „Ereignisanzeige“), und suche nach einer Möglichkeit, sie täglich zu sichern.Dies ist wichtig, da wir manchmal ein Problem mit der Anwendung entdecken – und für weitere Untersuchungen benötigen wir Informationen, die vor einer Woche protokolliert wurden.Die Veranstaltungen, nach denen wir suchen, gibt es nicht unbedingt noch ...Ich habe versucht, die Größe zu erhöhen und so weiter, aber ich denke, ein automatisiertes Backup würde den Prozess erleichtern.Am Ende hätten wir keine riesigen Protokolle, sondern mehrere Protokolle mittlerer Größe.
Ich würde bevorzugen eine einfache Lösung wie Batchdatei + Windows Scheduler, wäre aber auch an anderen Ansätzen interessiert.
Danke
Lösung
Hier ist ein WMI-Skript, das ich vor einiger Zeit gefunden. Dies könnte das sein, was Sie suchen!
dim strComputer = "." 'Define here the Remote IP Address or Computername
dim objWMIService
dim colLogFiles
dim objLogfile
dim errBackupLog
Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate,(Backup)}!\\" & strComputer & "\root\cimv2")
Call eventlogbackup("Application")
Call eventlogbackup("System")
Call eventlogbackup("Security")
Function eventlogbackup(logtype)
Set colLogFiles = objWMIService.ExecQuery ("SELECT * FROM Win32_NTEventLogFile WHERE LogFileName='" & logtype & "'")
For Each objLogfile in colLogFiles
errBackupLog = objLogFile.BackupEventLog("\\server\eventlogs\" & strComputer & "\" &logtype & ".evt")
If errBackupLog <> 0 Then
Wscript.Echo "The " & logtype &" event log could not be backed up."
Else
objLogFile.ClearEventLog()
Wscript.Echo "The " & logtype &" event log is backed up."
End If
Next
End Function
Just Set-up dieses Skript in einer geplanten Aufgabe und du bist gut zu gehen!
Andere Tipps
Sie können Windows Management Instrumentation (WMI) verwenden Sie das Ereignisprotokoll zu lesen und tun, was Sie mit dem Ergebnis zufrieden ist. Hier ist ein Artikel , dass Sie Ihre Zwecke optimieren kann in der Lage sein.
Alle Ereignisse im Anwendungskanal in XML ausgeben:
wevtutil.exe qe application
Für eine lesbare Textausgabe verwenden Sie:
wevtutil.exe qe application /f:text
Sie können jede dieser Ausgaben problemlos in regelmäßigen Abständen zur Sicherung an eine Datei weiterleiten.
Sie können prüfen, Fenster Ereignisse an einen Syslog-Server zu übermitteln. Dann, anstatt mit einem Prozess ausgeführt, der die Sicherung nicht Sie alle Log-Einträge weitergeleitet zu einer zweiten Stelle fast zur gleichen Zeit erhalten werden sie in das Windows-Ereignisprotokoll hinzugefügt werden.
http://ntsyslog.sourceforge.net/ http://edoceo.com/creo/winlogd http://www.softpanorama.org/Logs/Syslog/syslog_for_windows.shtml
Je nachdem, welche Syslog-Server, Sie können Setup-Filter einige Ereignisse ignorieren oder sie zu verschiedenen Dateien senden. Sie können Roll Setup-Protokoll wie Sie wollen.