Yanıtlar:
VB komut dosyası ve WMI (her ikisi de Windows'ta yerleşik) kullanabilirsiniz ...
Bu VBS kodu, her günlüğü C: \ temp olarak yedeklemeye çalışacak ve ardından bunları temizleyecektir (başarıyla yedeklenmişlerse):
strComputer = "."
Set objWMIService = GetObject("winmgmts:" _
& "{impersonationLevel=impersonate,(Backup)}!\\" & _
strComputer & "\root\cimv2")
Set colLogFiles = objWMIService.ExecQuery _
("Select * from Win32_NTEventLogFile")
For Each objLogfile in colLogFiles
logfileName = objLogFile.LogfileName
Wscript.Echo "Processing " + logfileName + " log..."
errBackupLog = objLogFile.BackupEventLog("c:\temp\" + objLogFile.FileName + ".evt")
If errBackupLog <> 0 Then
Wscript.Echo "The " + logfileName + " event log could not be backed up."
Else
objLogFile.ClearEventLog()
End If
Next
Bir metin dosyasına kaydedin (örneğin: LogClear.vbs
) ve sonra yürüt cscript LogClear.vbs
bir komut satırından çalıştırmak için.
Kaynak ServerFault Cevap Etkinlik kayıtlarını kaydet ve temizle ServerFault tarafından cevap Bart De Vos
Şimdi bunun için kullanabileceğiniz bir SysInternals aracı var PsLogList . Bu, Windows 2K'daki EventLog.pl dosyasının yerini alır.
Komuttan sonra günlükleri temizlemek için -c seçeneğini ve dosyayı belirtmek için -g seçeneğini kullanmanız gerekir. (garip bir nedenden dolayı -g kullanım-yardımında değildir).
usage: psloglist [- ] [\\computer[,computer[,...] | @file [-u username [-p password]]] [-s [-t delimiter]] [-m #|-n #|-h #|-d #|-w][-c][-x][-r][-a mm/dd/yy][-b mm/dd/yy][-f filter] [-i ID[,ID[,...] | -e ID[,ID[,...]]] [-o event source[,event source][,..]]] [-q event source[,event source][,..]]] [-l event log file] <eventlog>
@file Execute the command on each of the computers listed in the file.
-a Dump records timestamped after specified date.
-b Dump records timestamped before specified date.
-c Clear the event log after displaying.
-d Only display records from previous n days.
-c Clear the event log after displaying.
-e Exclude events with the specified ID or IDs (up to 10).
-f Filter event types with filter string (e.g. "-f w" to filter warnings).
-h Only display records from previous n hours.
-i Show only events with the specified ID or IDs (up to 10).
-l Dump records from the specified event log file.
-m Only display records from previous n minutes.
-n Only display the number of most recent entries specified.
-o Show only records from the specified event source (e.g. \"-o cdrom\").
-p Specifies optional password for user name. If you omit this you will be prompted to enter a hidden password.
-q Omit records from the specified event source or sources (e.g. \"-q cdrom\").
-r SDump log from least recent to most recent.
-s This switch has PsLogList print Event Log records one-per-line, with comma delimited fields. This format is convenient for text searches, e.g. psloglist | findstr /i text, and for importing the output into a spreadsheet.
-t The default delimeter is a comma, but can be overriden with the specified character.
-u Specifies optional user name for login to remote computer.
-w Wait for new events, dumping them as they generate (local system only).
-x Dump extended data
eventlog eventlog
Bir komuttan sonra uzaktan çalıştırabiliyorsanız, bunun gibi bir şeye ihtiyacınız olacaktır:
psexec \\servername -c psloglist.exe -c -g application.evt application