Powershell-Skript löschen alter Dateien
Hallo in die Runde,
hab mal zu diesem Skript eine Frage:
Das Skript läuft ohne Fehlermeldung durch, das Log wird sauber erzeugt, auf den ersten Blick passt eigentlich alles. Nur ein Fehler hat das ganze, er löscht keine einzige Datei.
Falsche Pfade oder so kann ich ausschließen, da im Log die richtigen Dateien und der Pfad ausgewiesen wird. Das Skript hat ursprünglich mal funktioniert, nun wollte ich es
einfach bei einem anderen Server übernehmen und da "verweigert" er. Kann es an dem Verzeichnis liegen? Kann PowerShell eine Datei in einem Netzwerkpfad nicht löschen?
Im voraus besten Dank für eure Ideen.
hab mal zu diesem Skript eine Frage:
$Verzeichnis = "\\serverip\Archiv_DBD"
$Tage= "-28"
$Logfile = "M:\Logfile.txt"
"
Prüfung auf veraltete Dateien im Verzeichnis: $Verzeichnis / Älter als: $Tage" >> $Logfile
"Diese Dateien stehen zur Löschung an:" >> $Logfile
"Beginn der Bereinigung "+(get-date)+"" >> $Logfile
Get-ChildItem -Path "$Verzeichnis" -recurse | Where {$_.CreationTime -lt (get-date).adddays($Tage)} | ft Name, CreationTime, @{Name="Size in GB";Expression={ "{0:N3}" -f ($_.Length / 1GB)}}, Directory >> $Logfile
Get-ChildItem -Path "$Verzeichnis" -recurse | Where {$_.CreationTime -lt (get-date).adddays($Tage)} | Remove-Item -force -verbose -include .7z >> $Logfile
"Ende der Bereinigung "+(get-date)+"" >> $Logfile
Das Skript läuft ohne Fehlermeldung durch, das Log wird sauber erzeugt, auf den ersten Blick passt eigentlich alles. Nur ein Fehler hat das ganze, er löscht keine einzige Datei.
Falsche Pfade oder so kann ich ausschließen, da im Log die richtigen Dateien und der Pfad ausgewiesen wird. Das Skript hat ursprünglich mal funktioniert, nun wollte ich es
einfach bei einem anderen Server übernehmen und da "verweigert" er. Kann es an dem Verzeichnis liegen? Kann PowerShell eine Datei in einem Netzwerkpfad nicht löschen?
Im voraus besten Dank für eure Ideen.
Please also mark the comments that contributed to the solution of the article
Content-Key: 377593
Url: https://administrator.de/contentid/377593
Printed on: April 26, 2024 at 10:04 o'clock
3 Comments
Latest comment
Servus.
Wundert mich ehrlich gesagt nicht daß er nichts löscht .
Btw. Die Dateien doppelt zu enumerieren ist schon ziemlich ineffizient, ganz zu schweigen das dann von den Dateien die im Log landen tatsächlich nur die 7z gelöscht werden sollen. Für den der das Logfile liest stiftet das nur Verwirrung.
Grüße Uwe
Wundert mich ehrlich gesagt nicht daß er nichts löscht .
-include .7z
Da fehlt das berühmte Wildcard-Sternchen(*) oder willst du nur Dateien löschen die exakt .7z lauten?Btw. Die Dateien doppelt zu enumerieren ist schon ziemlich ineffizient, ganz zu schweigen das dann von den Dateien die im Log landen tatsächlich nur die 7z gelöscht werden sollen. Für den der das Logfile liest stiftet das nur Verwirrung.
$Verzeichnis = '\\serverip\Archiv_DBD'
$Tage = 28
$Logfile = 'M:\Logfile.txt'
Start-Transcript $logfile
"Prüfung auf veraltete Dateien im Verzeichnis: $Verzeichnis / Älter als: $Tage
Diese Dateien stehen zur Löschung an:"
$files = Get-ChildItem -Path $Verzeichnis -recurse -Include *.7z | ?{$_.CreationTime -lt (get-date).adddays(-$Tage)}
$files | ft Name, CreationTime, @{Name="Size in GB";Expression={ "{0:N3}" -f ($_.Length / 1GB)}}, Directory -Autosize -Wrap
"Beginn der Bereinigung $(get-date -f G)"
$files | Remove-Item -force -verbose
"Ende der Bereinigung $(get-date -f G)"
Stop-Transcript
Kann PowerShell eine Datei in einem Netzwerkpfad nicht löschen?
Ein Auto das man schieben muss?? Soweit ist es dann doch noch nicht. Solange du darfst, darfst du auch löschen, aber wenn du deinen Filter nicht richtig baust löscht er auch nichts.Grüße Uwe