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}
Please also mark the comments that contributed to the solution of the article
Content-Key: 187681
Url: https://administrator.de/contentid/187681
Printed on: April 24, 2024 at 15:04 o'clock
6 Comments
Latest comment
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