PowerShell module for cleaning disk space.
To learn about available cmdlets head to: docs/Public Cmdlets
# Install the module (PowerShell 5.1+ / PowerShell 7+)
Install-Module -Name WindowsDiskCleanup -Scope CurrentUser
# Import the module into the current session
Import-Module WindowsDiskCleanup
# List all commands provided by the module
Get-Command -Module WindowsDiskCleanup
# Dry run - show which IIS log files would be removed older than 100 days
Remove-IISLog -Days 100 -DryRun
# Remove old versions of one package, keeping the latest available version
Remove-NugetPackageVersion -PackageName 'sitecore.cms.core.content' -Days 30 -DryRun
# Remove old versions for all packages in C:\nuget (keep latest version for each package)
Remove-NugetPackageVersion -NugetFolder 'C:\nuget' -Days 30 -DryRun
# Remove old versions for all packages matching a wildcard
Remove-NugetPackageVersion -PackageName 'sitecore.cms.*' -NugetFolder 'C:\nuget' -Days 30 -DryRun
# Custom cleanup
$cleanupTargets = @(
@{ Path = 'C:\Packages\Artifacts'; Days = 900 }
@{ Path = 'C:\Resources'; Days = 365 }
)
foreach ($target in $cleanupTargets) {
Write-Host "[CLEANUP][$($target.Path)]"
$items = Get-ChildItem $target.Path
$items | Remove-OldItem -Days $target.Days -DryRun
$items | Remove-OldItem -Days $target.Days
}Alternatively, you can run complete cleanup with default settings:
cls;.\main.ps1 -DryRunRun complete cleanup with NuGet package retention:
cls;.\main.ps1 -DryRun -NugetPackages @('sitecore.cms.core.content') -NugetDays 30 -NugetFolder 'C:\nuget'Clean all packages in the NuGet folder (no package list required):
cls;.\main.ps1 -DryRun -NugetDays 30 -NugetFolder 'C:\nuget'MIT License © Alan Płócieniak