Mit jedem Checkin werden auf dem Buildserver ein bis mehrere Buildvorgänge angestossen. In diesem Zuge werden alle SOlution-Daten aus dem TFS kopiert, ein Build durchgeführt und die Buildergebnisse zur Verfügung gestellt. Üblicherweise werden diese Dateien gar nicht mehr gebraucht, aber das System hält sie erst einmal vor.
Eine automatische spätere Löschung ist nicht vorgesehen.
Da hierdurch nach und nach der Speicherplatz 'volläuft' habe ich ein kleines PowerShell Script entwickelt, welches mittels Scheduled Task periodisch aufräumt:
Unter C:\Program Files\Scripte liegt VerzeichnisLeeren.ps1:
param
(
[string]$Folder = "E:\Symbols",
[int]$Days = 14
)
$Heute = Get-Date;
Get-Childitem $Folder -recurse | Where-Object {($Heute - $_.LastWriteTime).Days -gt $Days} | Remove-Item -Recurse;
Das Script ist denkbar einfach aufgebaut: man kann ein Verzeichnis übergeben und einen Zeitraum in Tagen. Im Verzeichnis werden alle Dateien und Ordner gelöscht, die älter sind, als der angegebene Zeitraum.
Das Script wird über Geplante Aufgaben zurzeit jeden Montag morgen um 5 Uhr ausgeführt. Nach Rücksprache mit der Administration ist dies ein geeigneter Zeitpunkt, zu dem es zu keinen Problemen mit eventuellen anderen Tätigkeiten kommen sollte.