Jump to content

Eventlog leeren


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

Empfohlene Beiträge

Hallo zusammen

 

ich habe hier ein script was mir alle Eventlog einträge in sql schreibt, danach möchte ich das eventlog leeren. somit habe ich dann nur die eventlog in sql die neu sind. nun sehe ich, dass ich beim leeren des eventlogs application system usw. angeben muss. ich will aber gleich alle leeren ohne noch ein backup zu haben da ich die ja mit dem script in sql habe! wie kann ich nun das leeren aller events machen?

 

strComputer = "."

Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colRetrievedEvents = objWMIService.ExecQuery _
("Select * from Win32_NTLogEvent")

For Each objEvent in colRetrievedEvents

dim Category
dim ComputerNameEV
dim EventCode
dim Message
dim RecordNumber
dim SourceName
dim TimeWritten
dim nType
dim nUser

Category = objEvent.Category
ComputerNameEV = objEvent.ComputerName
EventCode = objEvent.EventCode
Message = objEvent.Message
RecordNumber = objEvent.RecordNumber
SourceName = objEvent.SourceName
TimeWritten = objEvent.TimeWritten
nType = objEvent.Type
nUser = objEvent.User

Set db = CreateObject("ADODB.Connection")
db.Open("Provider=SQLOLEDB.1;Data Source=Server; Trusted_Connection=Yes;Initial Catalog=wartung;User ID=sa;Password=xxx;")
sql = "use wartung;"
db.Execute(sql)
'set rs = 

 sql = "INSERT INTO wartung (Category,ComputerNameEV,Eventcode,Message,RecordNumber,SourceName,TimeWritten,nType,nUser)"
 sql = sql & "values ('" & Category & "','" & ComputerNameEV & "','" & EventCode & "','" & Message & "','" & RecordNumber & "','" & SourceName & "','" & TimeWritten & "','" & nType & "','" & nUser & "');"
 db.Execute(sql)
Next

 

so schreibt er mal alle events in sql. soweit i.o! nun möchte ich die events auch gleich leeren. mit diesem script was aber bis jetzt nur application leert und nicht alle events. auch macht e noch mit dem eine sicherung was ich nicht möchte. und dies sieht wie folgt aus!

 


strComputer = "." 
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") 
' Obtain an instance of the the class 
' using a key property value.
Set objShare = objWMIService.Get("Win32_NTEventlogFile.Name='C:\WINDOWS\system32\config\AppEvent.Evt'")

' Obtain an InParameters object specific
' to the method.
Set objInParam = objShare.Methods_("ClearEventlog"). _
   inParameters.SpawnInstance_()


' Add the input parameters.
objInParam.Properties_.Item("ArchiveFileName") =  "appeventlog"

' Execute the method and obtain the return status.
' The OutParameters object in objOutParams
' is created by the provider.
Set objOutParams = objWMIService.ExecMethod("Win32_NTEventlogFile.Name='C:\WINDOWS\system32\config\AppEvent.Evt'", "ClearEventlog", objInParam)

' List OutParams
Wscript.Echo "Out Parameters: "
Wscript.echo "ReturnValue: " & objOutParams.ReturnValue

 

kann mir nun jemand sagen wie ich nun mit dem script alle events leeren kann und kein backup erstellt wird?

 

gruss bergesel

Link zu diesem Kommentar

...ich habe ja alle event meldungen im sql vorhanden nach systemnamen abgelegt. dies machen wir 2mal jährlich. dies sind sehr spezielle systeme darum so! und ja ich will es so! :)

 

ah und wen ich sie nicht leeren würde hätte ich die gleichen meldungen in sql wen ich dies wieder durchführe mit den neuen.

 

was mir auch noch egal währe wen er sie leert und immer mit zeitstempel ablegt das währe mir auch recht :)

Link zu diesem Kommentar

Hallo,

 

hmm, dafür ist das freie ms-Tool logparser (Microsoft Download Center) hervorragend geeignet. Damit kannst du direkt alle EventLogs auslesen (auch remote) und über dsn/ODBC in eine Datenbank schreiben. Mit dem Parameter icheckpoint macht er dir das incrementell, ohne dass du Eventlogs leeren musst. Der Logparser schreibt einen Zeitstempel, ab dem er beim nächsten Auslesen weitermacht.

Ich geb Lian sehr recht, dass es beim Troubleshooting alles andere als angenehm ist, wenn ein Teil der Events am Ort A, der andere an Ort B gespeichert sind. Ausserdem braucht diese WMI-Classe bei grösseren Logs enorm Serverperformance.

 

Unter Serverhowto habe ich das Bearbeiten von Logdateien mittels Logparser mal bischen genauer beschrieben. Windows Server How-To Guides: Auswertung von Eventlogs mit dem MS-Logparser - ServerHowTo.de

Über den Icheckpoint-Parameter informier dich in der *.chm Datei des Logparsers.

 

 

cu

blub

Link zu diesem Kommentar

ok werd mir das mal ansehen :) danke

 

 

habe da noch eine frage, habe mir das mal durchgelesen betreff in sql speichern.

 

"Ausgabe in eine SQL-Datenbank"

 

o:SQL Ausgabe im SQL-Format

Server: Datenbankserver

Dsn: DSN-Name

 

ich möchte aber keine ODBC schnittstelle konfig. kann ich das auch mit einem provider machen, sprich kein DSN? Also eine SQLOLEDB?

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