Skip to content

Latest commit

 

History

History
67 lines (48 loc) · 3.8 KB

File metadata and controls

67 lines (48 loc) · 3.8 KB

WindowsDiskCleanup

PowerShell Gallery License Build Status

PowerShell module for cleaning disk space.

To learn about available cmdlets head to: docs/Public Cmdlets

Usage examples

# 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 -DryRun

Run 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'

License

MIT License © Alan Płócieniak