Ich kenne keine Explorer-Add-Ons, aber wie die meisten Dinge in Windows kann dies mit PowerShell durchgeführt werden:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
$Path = $Drive.Name + ':\$Recycle.Bin'
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Remove-Item -Recurse
}
Speichern Sie dieses Skript als Textdatei mit einer .ps1Erweiterung. Mit dem Taskplaner können Sie dies dann in regelmäßigen Abständen ausführen.
Zunächst müssen Sie jedoch die Ausführung von PowerShell-Skripten zulassen, da Sie standardmäßig nur Befehle ausführen können, die direkt in die PowerShell-Eingabeaufforderung eingegeben wurden. Öffnen Sie dazu PowerShell und geben Sie den folgenden Befehl ein:
Set-ExecutionPolicy RemoteSigned
Geben Sie "y" oder "yes" ein, wenn Sie dazu aufgefordert werden. Sehen Sie Get-Help Set-ExecutionPolicyfür weitere Informationen.
Öffnen Sie nun den Taskplaner und legen Sie eine neue Aufgabe mit folgenden Parametern an:
- Geben Sie auf der Registerkarte "Allgemein" einen Namen ein und aktivieren Sie die Option "Mit höchsten Berechtigungen ausführen"
- Fügen Sie auf der Registerkarte "Trigger" einen neuen Trigger hinzu und legen Sie fest, dass die Aufgabe täglich ausgeführt wird
- Fügen Sie auf der Registerkarte "Aktionen" eine neue Aktion hinzu:
- belassen Sie den Typ als "Programm starten"
- Setzen Sie das Feld "Programm / Skript" auf
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
- Setzen Sie das Feld "Argumente hinzufügen" auf
-NonInteractive -File "C:\path\to\script.ps1"
- Deaktivieren Sie auf der Registerkarte "Bedingungen" die Option "Task nur starten, wenn der Computer mit Strom versorgt wird".
Zeilenweise Erklärung des Skripts:
ForEach ($Drive in Get-PSDrive -PSProvider FileSystem) {
Dies ruft eine Liste aller Laufwerke im Computer ab und durchläuft sie nacheinander. Der -PSProvider FileSystemParameter ist nur erforderlich, um Festplattenlaufwerke zurückzugeben, da PowerShell auch Pseudodrives für verschiedene andere Dinge wie Registrierungsstrukturen enthält.
Weitere Informationen finden Sie unter Get-Help Get-PSDriveund in diesem Lernprogramm zur Schleifenverarbeitung in PowerShell .
$Path = $Drive.Name + ':\$Recycle.Bin'
Dadurch wird der Pfad zum Papierkorbordner auf dem aktuellen Laufwerk erstellt. Beachten Sie die Verwendung von einfachen Anführungszeichen um den zweiten Teil, um zu verhindern, dass PowerShell $Recycleals Variable interpretiert wird.
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
Dies gibt alle Dateien und Unterordner unter dem angegebenen Pfad zurück (dem Pfad, den wir mit dem vorherigen Befehl erstellt haben). Der -ForceParameter wird benötigt, um in versteckte und Systemordner zu gelangen, und der -RecurseParameter macht den Befehl rekursiv, dh. Durchlaufen Sie auch alle Unterverzeichnisse. -ErrorActionist ein Standardparameter für die meisten PowerShell-Befehle, und der Wert bewirkt, SilentlyContinuedass der Befehl Fehler ignoriert. Dies dient dazu, Fehler für Laufwerke zu vermeiden, die so konfiguriert wurden, dass sie Dateien sofort löschen. Das |Symbol ganz am Ende leitet die Ergebnisse an den nächsten Befehl weiter. Ich habe es zur besseren Lesbarkeit in mehrere Zeilen aufgeteilt.
Weitere Informationen finden Sie unter Get-Help Get-ChildItem.
Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-30) } |
Dies filtert einfach die Ergebnisse des vorherigen Befehls und gibt nur diejenigen zurück, die älter als 30 Tage sind. $_bezieht sich auf das Objekt, das gerade verarbeitet wird, und die LastWriteTimeEigenschaft bezieht sich in diesem Fall auf das Datum und die Uhrzeit, zu der die Datei gelöscht wurde. Get-DateGibt das aktuelle Datum zurück.
Weitere Informationen finden Sie unter Get-Help Where-Objectund Get-Help Get-Date.
Remove-Item -Recurse
Dadurch werden einfach die Elemente gelöscht, die vom vorherigen Befehl übergeben wurden. Der -RecurseParameter löscht automatisch den Inhalt nicht leerer Unterordner. Ohne diese Option werden Sie zur Eingabe solcher Ordner aufgefordert.
Weitere Informationen finden Sie unter Get-Help Remove-Item.