Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / web / IIS

Simple Powershell script to clean up IIS log files

4.00/5 (1 vote)
3 Oct 2013CPOL 32.8K  
Very simple PowerShell cleanup script that will clean IIS 7 log files

Introduction 

Most administrators come across cleanup tasks once in a while or when disk space is full. As we know most of the disk space gets occupied by log files and that could be any log files on windows or third party application running on windows.

In this article I will be showing very simple PowerShell cleanup script that will clean IIS 7 log files. One can use this sample and modify it to fit to other log files cleanup tasks. 

I have separated cleanup functionality into a simple function called CleanTempLogfiles() which is very generic. It takes simple file path($FilePath) as parameter and removes all files older than specified days provided in the variable ($days). In following sample script it removes all files older than 7 days. 

Powershell code 

C++
# Module: Powershell script to clean IIS log files 
Set-Executionpolicy RemoteSigned
$days=-7 
(Get-Variable Path).Options="ReadOnly"
$Path="C:\inetpub\logs\LogFiles\W3SVC1"
Write-Host "Removing IIS-logs keeping last" $days "days"
CleanTempLogfiles($Path)

function CleanTempLogfiles()
{
param ($FilePath)
    Set-Location $FilePath
    Foreach ($File in Get-ChildItem -Path $FilePath)
    {
        if (!$File.PSIsContainerCopy) 
        {
            if ($File.LastWriteTime -lt ($(Get-Date).Adddays($days))) 

            {
            remove-item -path $File -force
            Write-Host "Removed logfile: "  $File
            }
    }
} 
}

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)