IIS Log cleaner
'Determine the number of days for which you want to keep logs
logDelDays = 30
'Main driver
purgeIISLogs("W3SVC")
purgeIISLogs("MSFTPSVC")
'Purge IIS logs
Sub purgeIISlogs(strService)
delCount = 0
Set fso = CreateObject("Scripting.FileSystemObject")
Set objIIS = GetObject("IIS://" & getComputer() & "/" & strService)
For Each objweb in objIIS
If lCase(objweb.Class) = "iiswebserver" _
Or lCase(objweb.Class) = "iisftpserver" Then
fLogDirPath = objweb.LogFileDirectory & "\" & strService & objweb.name
If fso.FolderExists(fLogDirPath) Then
For Each fLog in fso.GetFolder(fLogDirPath).Files
If UCase(Left(fLog.Name,2)) = "EX" And UCase(Right(fLog.Name,4)) = ".LOG" Then
fileDate = cDate(Mid(fLog.name,7,2) & " " & monthname(cint(Mid(fLog.name,5,2)),true) & " " & Mid(fLog.name,3,2))
If fileDate < DateAdd("d", now(), -logDelDays) Then
delCount = delCount + 1
fLog.Delete
End If
End If
Next
Wscript.Echo "Purged " & delCount & " logs for " & objweb.ServerComment
End If
End If
Next
Set objIIS = nothing
Set fso = nothing
End Sub
'Get computer name
Function getComputer()
Set objNet = WScript.CreateObject("WScript.Network")
getComputer= objNet.ComputerName
Set objNet = Nothing
End Function
Comments
Post a Comment