• You are here:
  • Home »
  • Microsoft »

Power Shell Skript zum Löschen von Dateien die älter als N Tage sind

PowerShell-Skripte sind aus dem Bereich der Serverwartung nicht mehr wegzudenken. Sie haben sich als unverzichtbares Werkzeug etabliert, um tägliche, wöchentliche oder monatliche Wartungsarbeiten effizient und automatisiert durchzuführen. Einmal geschrieben, übernehmen sie im Alltag viele repetitive Aufgaben und sparen damit Zeit und Ressourcen. Die Vielseitigkeit von PowerShell ermöglicht es, nahezu jede denkbare administrative Aufgabe zu automatisieren.

Ein konkretes Beispiel für die Anwendung von PowerShell in der Serverwartung ist das folgende Skript. Dieses Skript hat den Zweck, alle Dateien auf Laufwerk R zu löschen, die älter als 30 Tage sind. Es ist wichtig zu beachten, dass das Skript standardmäßig im Testmodus (whatif-Modus) ausgeführt wird, um versehentliche Löschvorgänge zu verhindern. Das `-whatif`-Flag ermöglicht einen Testlauf, bei dem angezeigt wird, was gelöscht werden würde, ohne tatsächlich Dateien zu entfernen.

$DatumVor30Tagen = (Get-Date).AddDays(-30)
$Source = „r:\“
start-transcript „$Source $(get-date -format yyMMdd).txt“
get-childitem „$Source “ -recurse | where {$_.lastwritetime -lt $DatumVor30Tagen -and -not $_.psiscontainer} |% {remove-item $_.fullname -force -verbose -whatif}

In diesem Skript wird zunächst das Datum vor 30 Tagen berechnet und in der Variable `$DatumVor30Tagen` gespeichert. Das Quellverzeichnis, in diesem Fall Laufwerk R, wird in der Variable `$Source` definiert. Das `start-transcript`-Kommando wird verwendet, um den Löschvorgang in eine Textdatei zu protokollieren. Der eigentliche Löschvorgang wird durch die `get-childitem`-Cmdlet durchgeführt, das alle Dateien im Quellverzeichnis und seinen Unterverzeichnissen durchsucht. Das `where`-Cmdlet filtert die Dateien, die älter als 30 Tage sind und keine Verzeichnisse sind. Schließlich wird das `remove-item`-Cmdlet verwendet, um die ausgewählten Dateien zu löschen.

Die Protokolldatei wird im Quellverzeichnis mit dem Format Tagesdatum (JahrMonatTag) .txt abgelegt. Dieses Protokoll bietet Transparenz über die durchgeführten Aktionen und ermöglicht es, den Löschvorgang im Nachhinein zu überprüfen.

Insgesamt zeigt dieses Beispiel die Flexibilität und Leistungsfähigkeit von PowerShell-Skripten in der Serverwartung. Die Automatisierung von wiederkehrenden Aufgaben führt zu einer effizienten Ressourcennutzung und erleichtert die Verwaltung von Serverumgebungen.