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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 308093
Url: https://administrator.de/contentid/308093
Ausgedruckt am: 19.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
Hi,
you could use a filesystem watcher to take track of new files with their date of appearance.
Regards
you could use a filesystem watcher to take track of new files with their date of appearance.
Regards
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.It would even be better to add a new Attribute to the file with that date - but how to accomplish that?
So storing this information inside the file would have no advantages.
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
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
@colinardo Also a good idea! Thank you for this information.