Es gibt mit PowerShell und der Windows Aufgabenplanung eine Möglichkeit Dateien aus einem Ordner automatisch nach einem bestimmten Zeitraum zu löschen. Ein Anwendungsfall dafür wäre z.B. ein Ordner zum Austauschen von Dateien von Mitarbeitern in einem Unternehmen. Die Dateien in dem Ordner sollen hier in diesem Beispiel nach 30 Tagen wieder gelöscht werden.
Man sollte zunächst wissen, dass wenn man eine Datei in einen anderen Ordner schieb, sich nur das „Erstelldatum“ ändert, das „Änderungsdatum“ bleibt gleich. Deshalb wird in dem diesem PowerShell Skript nach dem „Erstelldatum“ gefiltert.
Windows Power Shell:
Mit Windows PowerShell ISE kann eine .ps1 Datei erstellt werden, die dann nachher automatisch von der Aufgabenplanung ausgeführt wird. Windows PowerShell ISE als Administrator öffnen -> unteres Skript einfügen und anpassen und anschließend speichern als z.B. automatische_loeschung.ps1.
Powershellskript:
In der Zeile „$Alter = -30“ werden die Tage angegeben nach denen die Dateien gelöscht werden sollen. Die Tage werden davor mit einem Minus angegeben.
In der nächsten Zeile „$Path = “D:\Allgemein\Austausch (max. 30 Tage)”“ muss der Pfad des Ordners angegeben werden indem die Dateien gelöscht werden sollen. In diesem Beispiel „D:\Allgemein\Austausch (max. 30 Tage)“.
$Alter = -30
$Path = “D:AllgemeinAustausch (max. 30 Tage)”
Get-Childitem $Path -recurse | where {$_.CreationTime -lt (get-date).adddays($Alter) -and -not $_.psiscontainer} |% {remove-item $_.fullname -force }
Windows Aufgabenplanung:
Damit das Skript automatisiert ausgeführt wird, benötigen wir die Windows Aufgabenplanung.
Die Aufgabe sollte unabhängig von der Benutzeranmeldung ausgeführt werden. Den Trigger habe ich Täglich um 2:00 Uhr Nachts gesetzt.
Unter Aktion dann bei Programm/Skript den Pfad zur powershell.exe eintragen:
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
(Ggf. kann es sein, dass sich die Powershell.exe sich bei euch unter einem anderen Pfad befindet)
Bei “Argumente hinzufügen” ein “-command” gefolgt von dem Pfad des PowerShell-Skripts eintragen. In diesem Beispiel:
-command “c:\automatische_loeschung.ps1”
Mit OK bestätigen und Fertig!