All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- add the following feature
- We found paths like
c:\users\<username>\AppData\Roaming\abdata\abfsal\abdfsal_v*
where there are multiple directories with the nameabdfsal_v*
- Implement a simple configuration logic to keep only the last two directories of the matches (ordered by time) but remove the other matching directory names
- We found paths like
- add or replace logging of "starting " with
"$($PSCmdlet.MyInvocation.MyCommand.Name)"
. see- Refactor
Write-LogMessage
by using theWrite-Verbose
etc. message types
- Refactor
- add usage of transcript
- add translation files
- added default value
$false
to each optional parameter$beVerbose
- add user remove logic from windows_remove_old_users
- add configuration section with a list of processes to stop before starting the cleanup
- add configuration section with a list of processes to start after starting the cleanup
- Implement usage of Resolve-Path
- fix not working calculated values of free'ed up disk space by using Measure-Object
- read this
- Evaluate how easy it is to use the collection of paths and create full qualifyed paths out of it
- This way we would be able to log and process real paths instead of paths with wild cards
- e.g.
C:\foo\*.bar\*
would becameC:\foo\baz.bar
and maybe more
- Refactor
Log-Message
and the otherLog-*
functions- Split it into "Log-Message" and "Output-Message" to ease up log with log level verbose but display only with information
- Maybe create a "outputVerboseLevel" similar to "logLevel" setting
- or ...
- Create object Logger and Messenger
- Create MessengerCollection
- Pass the MessengerCollection to each function
- Version 2
- be open for all know operation systems (windows or unix/linux like)
- detect operation system
- create case blocks in the global configuration file
- adapt path handling and so one, if needed
- check if this is a thing
- Added dedicated Logger class
- Added more cache paths of applications
- Added
Clear-Host
at the end of the lastStart-PathTruncations
to refresh screen and remove the last progress bar - Added exit statement if global configuration file can not be loaded
- Added informational log statement if local configuration file can not be loaded
- Added method
Write-ErrorLogAndExit
and implemented usage to remove duplicated code - Added backwarts compatibility in global configuration to support
$IsWindows
on powershell below version 7 - Added support for Lotus/IBM/HCL Notes
- Added logging if
Remove-Item
is not able to remove the item - Started section documentation and added example image to show something
- Refactored TruncableObject by replacing object by a real class
- Changed output of
$user
path. Instead of keeping$user
, now user path is displayed - Refactored way how we write logs by replacing
Write-[Info|Debug|Error]Log
withLogger.[Info|Debug|Error]
calls - Found and fixed a bug when dealing with files for paths like
\foo\bar\*
- The path with the
*
was used so there was never a chance this exact file (matching item) could be removed - This fixes also not deleted files in the section of duplicate checks
- The path with the
0.11.0 - released at 20210915
- Added display of progress bar if
$beVerbose = $false
- Added asking ":: Remove lock file (y/N)" if lock file exists
- Added optional local host configuration
local-<hostname>-Configuration.ps1
- Added configuration value
$deleteRecycleBin
with default value$false
- Depending on the major os version, it runs
rd
orClear-RecycleBin
- Depending on the major os version, it runs
- Added configuration value
$startDiskCleanupManager
with default value$true
- If set to
$true
,cleanmgr /sagerun:1 /verylowdisk
will be executed
- If set to
- Added more paths plus handling of wsus service
- Added statistic output as information message on last line
- Runtime
- Number of free-ed up disk space
- Number of removed files
- Added function
Create-DiskInformation
- Added the check to only run duplicate check if there are at least two entries in the collection
- Changed function names to aligne with approved verbs
- Changed lock file name from
CleanUpSystem.lock
to<hostname>-CleanUpSystem.lock
to enable multiple run on multiple hosts from same source - Refactored method naming to fit the style of powershell
- IMPORTANT, you have to replace the
Create-TruncableObject
method calls in your local configuration withNew-TruncableObject
- IMPORTANT, you have to replace the
0.10.0 - released at 20210413
- Added this changelog
- Added changelog to do list
- Added info log about the amount of files to be removed
- Added check if "days to keep" is
0
- If the value is
0
we will use the "just give me all items from this path" instead of "just give me items for fitting date" mechanism - If the value is
0
, we will callRemote-Item
on the path without using the result from "Get-Childitem"
- If the value is
- Commented out pre configured path
c:\Windows\Temp
- Microsoft tells different stories if it is save to remove the content of this path - Removed
-File
in theGet-Childitem
list - Moved pre configured path
c:\Users\$user\Downloads
fromglobalConfiguration.ps1
tolocalConfiguration.ps1.dist
0.9.0 - released at 20210408
- Initial release