bjoernanger
Goto Top

Löschen von Dateien nach Erstellungs- Änderungsdatum

Hallo zusammen,

ich habe eine kleine Herausforderung die ich selbst nicht lösen kann.
Ich habe schon eine Menge gesucht aber nicht's gefunden das wirklich passt. Und meine VBS Kenntnisse reichen nicht um's selbst zu bauen.

Zu meinem Problem:
Wir habe ein Verzeichnis in dem jeder Benutzer Lese- und Schreib-Rechte hat um Dateien kurzfristig(!!!!) losgelöst von Abteilungen und Projekten mit Kollegen auszutauschen. Leider führt das dazu, das sich mit der Zeit jede Menge Müll dort angesammelt hat (ca. 500GB). Da ich nicht andauert nachschauen möchte was jetzt alt genug ist um es löschen würde ich das gern ein Script erledigen lassen. Das geht ... aber wie?

Das Script soll folgendes erledigen:
In jedes Unterverzeichnis schauen, incl der weiteren Ebenen darunter, und prüfen ob in den letzten 10 Tagen eine Datei dazu (Date Created) oder geändert (Date Modified) worden ist. Wenn das so ist, passiert nicht. Wenn nicht, dann soll das gesamte Verzeichnis gelöscht werden.

Toll wäre noch eine Log-Datei in der die Benutzer sehen können, ob bzw. wann welches Verzeichnis (*ohne* Unterverz.) gelöscht wurde. (Schrecklich aber wahr: Dann kann er es sich zur Not mit VSS zurückholen).

Kann mir da jemand helfen ? Wär toll.

Beste Grüße

Content-ID: 186633

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

Ausgedruckt am: 05.11.2024 um 06:11 Uhr

MaceWindu
MaceWindu 18.06.2012 um 14:57:25 Uhr
Goto Top
Hallo,

ich verwende dafür "delage32.exe". Man kann per Schalter auch konfigurieren ob created / accessed / oder modfied berücksichtigt werden sollen.
Vielleicht kannst dir mein Script an deine Bedürfnisse anpassen. Ist mit einer "Vorschau" welche Dateien zur Löschung vorgesehen sind und welche dann wirklich gelöscht wurden. Kann man natürlich rausnehmen bzw. explizit alleinig für einen "Testlauf" verwenden.

REM Hier wird das gewünschte Löschalter konfiguriert (Einheit in Tagen):
SET AGE=10

REM Pfad für die LOG-Datei:
SET LOG="\\serverNAME\FREiGABENAME\del_Log.txt"


ECHO Beginn der Protokollierung: >> %LOG%
date /t >> %LOG%
time /t >> %LOG%
ECHO Konfigurierte Alterung: %AGE% Tag(e) >> %LOG%
ECHO Zum löschen vorgesehene Images: >> %LOG%
%WINDIR%\system32\delage32.exe \\SERVERNAME\FREIGABENAME\*.* %AGE% /preview >> %LOG% 2>&1


ECHO . >> %LOG%
ECHO Protokollierung abgeschlossen, nun Beginn des Löschvorgangs am/um: >> %LOG%
date /t >> %LOG%
time /t >> %LOG%
ECHO Tatsächlich gelöschte Images: >> %LOG%
%WINDIR%\system32\delage32.exe \\SERVERNAME\FREIGABENAME\*.* %AGE% >> %LOG% 2>&1

ECHO . >> %LOG%
ECHO Ende des Löschvorgangs: >> %LOG%
date /t >> %LOG%
time /t >> %LOG%
ECHO Script abgeschlossen! >> %LOG%
ECHO --------------------------------------------------------- >> %LOG%
bjoernanger
bjoernanger 18.06.2012 um 15:24:07 Uhr
Goto Top
Hi,

danke für die Antwort. Und wenn ich mir das anschaue wird das wahrscheinlich funktionieren.
Jedoch zielt Dein Script leider nur auf einzelne Dateien und gehört nicht zu den Windows-Bord-Mitteln. Der eigentliche Such- und Löschvorgang passiert ja in der delage32.exe. Und ich bin mir nicht mal sicher, das ich das auf einem W2K8 R2 zum laufen kriege.

Gibt's da nicht auch von an PS oder VBS?
bastla
bastla 18.06.2012 um 15:30:10 Uhr
Goto Top
Hallo bjoernanger!

Etwas in der Richtung hatten wir zB hier ...

Grüße
bastla
bjoernanger
bjoernanger 18.06.2012 um 15:40:47 Uhr
Goto Top
Hi,
das Script hatte ich auch schon gefunden.
Es macht fast alles was für mich hilfreich wäre. Kann man es so tunen, das es Erstellungsdatum *und* Änderungsdatum berücksichtigt?

Gruß
Bjørn
bastla
bastla 18.06.2012 aktualisiert um 15:45:11 Uhr
Goto Top
Hallo bjoernanger!
dass es Erstellungsdatum *und* Änderungsdatum berücksichtigt?
Einfach ".DateCreated" und ".DateLastModified" verwenden ...

Grüße
bastla
MaceWindu
MaceWindu 19.06.2012 um 15:00:53 Uhr
Goto Top
Jedoch zielt Dein Script leider nur auf einzelne Dateien
dafür gibts den Schalter /recurse - "include subdirectories". 2 weitere Schalter hat dir bastla bereits verraten. Alle anderen erfahrst wennst mal "delage32.exe" im Prompt eingibst.

und gehört nicht zu den Windows-Bord-Mitteln.
Nein, aber zum Glück gibts Hrn. Google.

Und ich bin mir nicht mal sicher, das ich das auf einem W2K8 R2 zum laufen kriege.
Warum nicht?

Gibt's da nicht auch von an PS oder VBS?
Naja, jeder hat so seine Präferenzen...

Grüße
MaceWindu