elgotto
Goto Top

PS - Dateien im Ordner löschen

Hallo in die Runde,

folgendes Problem:

Ich würde gern eine Art Löschordner für alle User in der Domäne anlegen, heißt, ein Ordner in den die User alle Files schieben können, die gelöscht werden sollen.

Das ist ja nun nicht das Problem - also einen Ordner anzulegen.

Jetzt soll aber jeden Tag jede Datei gelöscht werden, die mindestens 30 Tage in diesem Ordner liegt.
Gibt es dafür einen Workaround bzw. eine Script-Möglichkeit?
LastAccess- oder WriteTime kommen nicht in Frage, da manche Datei ewig nicht angefasst wurde. (bis auf das Verschieben)

Für Ideen wäre ich dankbar.

Content-ID: 5291150950

Url: https://administrator.de/forum/ps-dateien-im-ordner-loeschen-5291150950.html

Ausgedruckt am: 20.12.2024 um 13:12 Uhr

3063370895
Lösung 3063370895 11.01.2023 aktualisiert um 15:39:14 Uhr
Goto Top
Also wenn ich eine Datei verschiebe, ändert sich die LastAccessTime auf den Zeitpunkt des Verschiebens.

$Path = "C:\temp"  
$Days = "30"  
 
$CurrentDate = Get-Date
$DatetoDelete = $CurrentDate.AddDays(-$Days)
Get-ChildItem $Path | Where-Object { $_.LastAccessTime -lt $DatetoDelete } | Remove-Item -Force
DerMaddin
DerMaddin 11.01.2023 um 15:53:08 Uhr
Goto Top
Ich sehe da auch keine Probleme, da LastAccessTime der Zeitpunkt des Erstellens ist, ganz egal ob die Datei per Drag&Drop (Aussschneiden&Einfügen) oder Kopieren&Löschen in den Ordner kommt.
Hubert.N
Hubert.N 11.01.2023 um 16:20:00 Uhr
Goto Top
Moin

oder ganz einfach ohne eigenes programmieren: DelAge

Gruß
ElGotto
ElGotto 12.01.2023 um 09:47:11 Uhr
Goto Top
Ich hatte es jetzt nochmal, gestern eigentlich auch schon, exemplarisch mit zwei Dateien versucht. Nach dem Verschieben blieb die LastAccessTime bestehen und änderte sich nicht.
ElGotto
ElGotto 12.01.2023 um 09:51:59 Uhr
Goto Top
Eine weitere Idee wäre, jeden neue Datei im Ordner automatisch einmal zu kopieren, während das Original gelöscht wird. Dann setzt man quasi ja ein CreationTime etc.
Dann bekommen die Kopien noch einen Identifier in den Namen, dass klar ist, dass die Datei schon kopiert wurde. So war jetzt meine Idee nach etwas Schlaf face-big-smile
3063370895
3063370895 12.01.2023 um 10:01:34 Uhr
Goto Top
Ist LastAccessTime eventuell bei dir deaktiviert?

was gibt
fsutil behavior query disablelastaccess
auf dem entsprechendem System aus?
ElGotto
ElGotto 12.01.2023 um 10:11:39 Uhr
Goto Top
Das hier:

DisableLastAccess = 2 (Vom System verwaltet, Updates für letzte Zugriffszeit ENABLED)
5175293307
Lösung 5175293307 12.01.2023 um 12:46:10 Uhr
Goto Top
Schau dir auch mal die Lösung hier an, die ist wohl unabhängig von der LastAccessTime denn die kann ja ausgeschaltet sein
Script oder Tool zum Löschen von Dateien die mehr als X Tage im Ordner existieren
Oder man nimmt statt einem extra Skript den FSRM der hat das schon als Feature integriert ...
Powershell ältere Dateien löschen