Option Explicit
On Error Resume Next
Dim numThreshold
Dim strMachine
Dim strArchivePath
Dim strMoniker
Dim refWMI
Dim colEventLogs
Dim refEventLog

If WScript.Arguments.Count < 2 Then
WScript.Echo _
"Skadnia: archivelogs.vbs <komputer> <cieka_archiwum> [warto_graniczna]"
WScript.Quit
End If

If WScript.Arguments.Count = 2 Then
numThreshold = 0
Else
numThreshold = WScript.Arguments(2)
If Not IsNumeric(numThreshold) Then
WScript.Echo "Trzeci parametr musi by liczb!"
WScript.Quit
End If

If numThreshold < 0 OR numThreshold > 100 Then
WScript.Echo "Trzeci parametr musi przyjmowa warto z zakresu 0-100"
WScript.Quit
End If
End If

strMachine = WScript.Arguments(0)
strArchivePath = WScript.Arguments(1)

strMoniker = "winMgmts:{(Backup,Security)}!\\" & strMachine
Set refWMI = GetObject(strMoniker)
If Err <> 0 Then
WScript.Echo "Nie mona uzyskac poczenia z usug WMI."
WScript.Quit
End If

Set colEventLogs = refWMI.InstancesOf("Win32_NTEventLogFile")
If Err <> 0 Then
WScript.Echo "Nie mona pobra obiektw dziennika zdarze"
WScript.Quit
End If

For Each refEventLog In colEventLogs
'if shouldAct( ) returns non-zero attempt to back up
If shouldAct(refEventLog.FileSize,refEventLog.MaxFileSize) <> 0 Then
If refEventLog.ClearEventLog( _
makeFileName(refEventLog.LogfileName)) = 0 Then
WScript.Echo "Dziennik " & refEventLog.LogfileName & _
" zosta pomylnie zarchiwizowany"
Else
WScript.Echo "Dziennik " & refEventLog.LogfileName & _
" nie mg zosta zarchiwizowany"
End If
Else
WScript.Echo "Dziennik " & refEventLog.LogfileName &_
" nie osign poziomu ustalonego dla archiwizacji"
End If
Next
Set refEventLog = Nothing
Set colEventLogs = Nothing
Set refWMI = Nothing

Function shouldAct(numCurSize, numMaxSize)
If (numCurSize/numMaxSize)*100 > numThreshold Then
shouldAct = 1
Else
shouldAct = 0
End If
End Function

Function makeFileName(strLogname)
makeFileName = strArchivePath & "\" & _
strMachine & "-" & strLogname & "-" & _
Year(Now) & Month(Now) & Day(Now) & ".evt"
End Function
-------------------------
archivelogs.vbs komputer cieka_archiwum [warto_graniczna]
-------------------------
C:\>cscript.exe archivelogs.vbs srv210 "C:\Pliki dziennika"
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

Dziennik Security zosta pomylnie zarchiwizowany
Dziennik System zosta pomylnie zarchiwizowany
Dziennik Directory Service zosta pomylnie zarchiwizowany
Dziennik DNS Server zosta pomylnie zarchiwizowany
Dziennik File Replication Service zosta pomylnie zarchiwizowany
Dziennik Application zosta pomylnie zarchiwizowany

C:\>
