Dateien Löschen älter 30 Tage mit Powershell
Ich möchte aus unserem Backup alle Dateien löschen, welche älter als 30 Tage sind. Am einfachsten lässt es sich wohl mit der Powershell realisieren.
Im groben funktioniert mein Script auch, bis zum spannenden Teil, dem Löschen.
Könnt ihr mir vieleicht sagen, an welcher Stelel es hier hakt ?
$DatumVor30Tagen = (Get-Date).AddDays(-30)
$Source = "\\HEUITDC002\Si_Web$\*"
$Files = Get-ChildItem $Source -Exclude *.db,*.tar -recurse | Where-Object {$_.LastWriteTime -lt $DatumVor30Tagen} | Sort-Object LastWriteTime -descending | Out-File c:\deleted_files.txt
$Files | ForEach {Remove-Item -recursive}
Im groben funktioniert mein Script auch, bis zum spannenden Teil, dem Löschen.
Könnt ihr mir vieleicht sagen, an welcher Stelel es hier hakt ?
$DatumVor30Tagen = (Get-Date).AddDays(-30)
$Source = "\\HEUITDC002\Si_Web$\*"
$Files = Get-ChildItem $Source -Exclude *.db,*.tar -recurse | Where-Object {$_.LastWriteTime -lt $DatumVor30Tagen} | Sort-Object LastWriteTime -descending | Out-File c:\deleted_files.txt
$Files | ForEach {Remove-Item -recursive}
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 187681
Url: https://administrator.de/forum/dateien-loeschen-aelter-30-tage-mit-powershell-187681.html
Ausgedruckt am: 23.12.2024 um 17:12 Uhr
6 Kommentare
Neuester Kommentar
Hi,
vielleicht solltest Du mal das '\*' bei der Var $Source rauslassen.
Folgendes Script habe ich mal aus meinem Sammelsorium rausgesucht. Das geht:
Zeile Drei: nur so zum Loggen, kannst Du weglassen
Wenn Du in Zeile 4 -whatif hinter -verbose hängst, dann läuft er 'trocken' durch ohne zu löschen. Gut für Tests, aber das weißt Du wahrscheinlich.
bye
Karo
vielleicht solltest Du mal das '\*' bei der Var $Source rauslassen.
Folgendes Script habe ich mal aus meinem Sammelsorium rausgesucht. Das geht:
$DatumVor30Tagen = (Get-Date).AddDays(-30)
$Source = "D:\_TEST_"
start-transcript "$Source $(get-date -format MMddyyHHmmss).txt"
get-childitem "$Source " -recurse | where {$_.lastwritetime -lt $DatumVor30Tagen -and -not $_.psiscontainer} |% {remove-item $_.fullname -force -verbose}
Zeile Drei: nur so zum Loggen, kannst Du weglassen
Wenn Du in Zeile 4 -whatif hinter -verbose hängst, dann läuft er 'trocken' durch ohne zu löschen. Gut für Tests, aber das weißt Du wahrscheinlich.
bye
Karo