cougar77
Goto Top

Powershell ältere Dateien löschen

Hallo,

ich habe ein kleines Problem mit einem Datenaustauschordner.

Und zwar möchte ich, dass in einem Ordner Dateien 30 Tage liegen bleiben.
Nehme ich als Kriterium CreationDate funktioniert es, wenn die Benutzer die Datei in den Ordner kopieren. Nehme ich lastwritedate bekomme ich nur die letzte Änderung innerhalb der Datei als Kriterium.
Dummerweise werden beide Kriterien nicht verändert, wenn ein Benutzer die Datei verschiebt, mit der Folge, dass die Datei evtl. sofort gelöscht wird.

Gibt es vielleicht einen Parameter, den ich von get-childitem noch nicht gefunden habe, der dafür geeignet wäre? Oder eine andere Lösung (ohne alle Dateien mitzuloggen)?

Gruß
Marco

Content-Key: 308093

Url: https://administrator.de/contentid/308093

Ausgedruckt am: 19.03.2024 um 07:03 Uhr

Mitglied: 129813
129813 24.06.2016 aktualisiert um 08:54:41 Uhr
Goto Top
Hi,
you could use a filesystem watcher to take track of new files with their date of appearance.

Regards
Mitglied: Cougar77
Cougar77 24.06.2016 um 09:20:54 Uhr
Goto Top
Thanks, but this is not quite what I was thinking about.
Yes, I could log all Files when they first appear and take that date for my 30 days check.

But isnt there a more straight Forward way? It would even be better to add a new Attribute to the file with that date - but how to accomplish that?
Mitglied: 129813
129813 24.06.2016 um 09:29:47 Uhr
Goto Top
Zitat von @Cougar77:
It would even be better to add a new Attribute to the file with that date - but how to accomplish that?
But for that you also need to monitor the folder for new files, so it doesn't matter where you store this information, a simple CSV-File which PS can handle very well would suffice.
So storing this information inside the file would have no advantages.
Mitglied: colinardo
Lösung colinardo 24.06.2016 aktualisiert um 18:24:11 Uhr
Goto Top
Hallo Marco,
ich würde das heutzutage anders angehen. Das ganze kannst du auf einem Windows Server 2012R2 mit dem FSRM (Fileserver-Ressourcemanager Rolle) und DAC (DynamicAccessControl) komfortabel für eine unbegrenzte Zahl an Shares oder Ordnern automatisch steuern.
Dynamic Access Control: Scenario Overview
Dort definierst du Klassifizierungsregeln die auf die Dateien eines Ordners angewendet werden (z.B. Retentiontags oder auch eigene Datumsfelder). Dann verwendet man die Dateiverwaltungsaufgaben um die Dateien mit bestimmten Tags (z.B. Datum des Tags älter als 30 Tage) regelmäßig zu löschen.

Den FSRM kann man komplett auch per Powershell steuern.
File Server Resource Manager Cmdlets in Windows PowerShell

Das wäre für mich "zielgerichtet".

Hier mal ein Demo-Video wie man es mit dem FSRM umsetzen kann

Grüße Uwe
Mitglied: 129813
129813 24.06.2016 um 11:19:56 Uhr
Goto Top
@colinardo Also a good idea! Thank you for this information.
Mitglied: Cougar77
Cougar77 30.06.2016 um 12:34:30 Uhr
Goto Top
Hallo Uwe,

danke für die Info - wenn ich das recht sehe, setzt das aber einen 2012R2 voraus ;) - den ich aktuell aber nicht zur Verfügung habe.
Wäre auch für den Zweck etwas zu viel des Guten - für 3 Ordner...

Ich werde mir dann soweit helfen, dass ich eine Kombination aus creation und modify date nehme und das ganze mitlogge...

Gruß