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
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
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 186633
Url: https://administrator.de/contentid/186633
Ausgedruckt am: 21.11.2024 um 22:11 Uhr
6 Kommentare
Neuester Kommentar
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%
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%
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