bioperiodik
Goto Top

Ereignisanzeige automatisch löschen

Guten Tag,

Umgebung: Windows Server 2003

Ich habe folgendes vor:

Aus der Ereignisanzeige "Sicherheit" Daten in eine .txt speichern, diese mit Datum als Dateiname abspeichern und dann die Ereignisanzeige "Sicherheit" leeren. Das ganze sollte am besten mit einer Batch (.bat) Datei bewerkstelligt werden.

Die ersten zwei Punkte hab ich problemlos geschafft, der dritte Punkt stellt sich allerdings als nicht so einfach da.
Für das leeren/löschen der Ereignisanzeige habe ich allerdings noch nichts gefunden das funktioniert. Google ergab ein VBS Script welches ich allerdings nicht zum laufen bekommen hab.

Es fehlt also lediglich noch ein Befehl mit dem ich die Ereignisanzeige leeren kann.

Ich hoffe jemand von euch weis einen Rat face-smile

Danke schonmal im Vorraus!
Sebastian

Content-Key: 137421

Url: https://administrator.de/contentid/137421

Printed on: April 19, 2024 at 21:04 o'clock

Member: Solarius
Solarius Mar 04, 2010 at 14:52:06 (UTC)
Goto Top
Auch Guten Tag,

warum denn überhaupt eine noch ein Befehl.

Wenn Du es schon geschafft hast, die Datei in einem bestimmten Rhythmus weg zu schreiben, kannst Du mit einer Einstellung in den Eigenschaften der jeweiligen Ereignisse die Ereignisse die älter sind als eine bestimmte Anzahl von Tagen überschreiben lassen.

Rechts klick auf die jeweilige Anzeige --> Eigenschaften --> im unteren Drittel des Register "Allgemein" ist die entsprechende Funktion.

Gruß

Frank
Mitglied: 60730
60730 Mar 04, 2010 at 16:20:35 (UTC)
Goto Top
Servus,

das macht man mit "quasi" Boardmitteln siehe http://support.microsoft.com/kb/318763.

Wobei weder dein Vorhaben - noch das von Frank Solar der richtige Weg ist.

  • Bei "deinem" Weg muß man später auch wieder das Datum der Datei kennen, um die einzulesen
  • Bei Franks kann es passieren, dass Einträge verloren oder doppelt eingelesen werden.

Ein Syslogserver macht bei der ganzen Nummer eine deutlich bessere Figur.

Gruß
Member: bioperiodik
bioperiodik Mar 04, 2010 at 18:32:15 (UTC)
Goto Top
Hey,

Danke für den Tipp, werd ich mir am Montag mal genauer anschauen!

Ich hätte die Daten in eine .txt exportiert, diese nach Monaten sortiert und jeden Tag exportiert. Also das Datum dann im Dateinamen.

Aber ich werd mir auf jedenfall mal dein Vorschlag anschauen, klingt vielversprechend face-smile

Danke schonmal
Member: bioperiodik
bioperiodik Mar 04, 2010 at 18:35:46 (UTC)
Goto Top
Wie TimoBeil schon gesagt hat, kanns dann vorkommen das Einträge doppel oder garnicht vorhanden sind, deswegen wollt ich die Logs einfach löschen, dann ist alles sauber dokumentiert.

Trotzdem Danke für den Beitrag face-smile
Member: bioperiodik
bioperiodik Mar 08, 2010 at 14:14:56 (UTC)
Goto Top
Guten Tag,

Hab jetzt einen cmd Befehl gefunden der die Ereignisanzeige löscht:

wmic /node:%Rechnername% nteventlog where "Logfilename=%Ereignisanzeige%" call ClearEventLog

einfach für %Rechnername% den Rechner eintragen auf dem die Ereignisanzeige gelöscht wird und für %Ereignisanzeige% die Anzeige (also z.B. Security, Application...)

Wenn ich das Script dann komplett fertig habe, werd ich den code mal hier posten, vielleicht hilfts ja dann noch jemand anderem ;)
Member: bioperiodik
bioperiodik Mar 10, 2010 at 09:37:15 (UTC)
Goto Top
Guten Tag,

Hier ist die fertige Version die auch funktioniert ;) Nur falls jemand es vielleicht mal braucht.

rem Dies ist ein Script um eine Ereignisanzeige zu exportieren, in eine .txt zu speichern und anschließend die Ereignisanzeige zu löschen
rem Dieses Script muss auf dem Rechner selbst ausgeführt werden!
rem --!! vor dem ersten Start unbedingt die Variablen anpassen !!--

rem Variablen
rem Name der Ordner und Dateien die erstellt werden, dass Datum wird angehängt
set Dateiname=Eventlog
rem Name des Rechners auf dem die Eventlogs exportiert und gelöscht werden sollen("PC-Name")  
set Rechner="PC-Name"  

rem Filter setzen
rem nur die Einträge dieses Benutzers anzeigen (Domäne\Benutzername)
set User=Benutzername
rem Welche Ereignisanzeige soll exportiert werden? (Sicherheit=Security, Anwendung=Application, System=System) ('Name des Ereignisprotokolls')  
set Ereignis=Security

rem Pfad zum Speicherort festlegen (Bsp: C:\Eventlogs\ oder \\Computername\Freigabe\)
set Speichern=C:\

rem Filtern und eportieren der Ereignisanzeige in eine .txt
cscript c:\windows\system32\eventquery.vbs /fi "user eq %User%" /fi "source eq %Ereignis%" /v /fo list >> %Dateiname%.txt  


rem Dateinameiablen für Tag/Monat/Jahr erstellen
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%

rem die durch das cscript erstellte .txt Datei umbenennen
ren %Dateiname%.txt %Dateiname%_%tag%_%monat%_%jahr%.txt

rem die erstellte .txt Datei auf einen anderen Rechner verschieben und in einen Ordnerstruktur mit Jahr/Montag+Jahr speichern
md %Speichern%\%Dateiname%_%jahr%
md %Speichern%\%Dateiname%_%jahr%\%Dateiname%_%monat%_%jahr%
move %Dateiname%_%tag%_%monat%_%jahr%.txt %Speichen%\%Dateiname%_%jahr%\%Dateiname%_%monat%_%jahr%\%Dateiname%_%tag%_%monat%_%jahr%.txt

rem die Ereignisanzeige löschen
rem wmic /node:%Rechner% nteventlog where "Logfilename=%Ereignis%" call ClearEventLog  

Obwohl das Script funktioniert hab ich mich für einen Syslog Server entschieden und teste das im Moment.
Ich habe folgende Progamme verwendet:
als Syslog Server: Castelware Syslog 2
und als Converter (Event log to Syslog): Eventlog to Syslog v4.1

Funktioniert bisher recht gut.

Noch einen schönen Tag,
Gruß Sebastian