shannra666
Goto Top

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}

Content-ID: 187681

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

Ausgedruckt am: 16.11.2024 um 13:11 Uhr

Karo
Karo 09.07.2012 um 14:15:34 Uhr
Goto Top
Hoi,

i gucke ma doh
http://ss64.com/nt/syntax-delolder.html

Ciao

Karo
shannra666
shannra666 09.07.2012 um 14:30:48 Uhr
Goto Top
Hallo,

danke für deine Antwort. Leider hilft es mir nicht weiter. Denn ich sehe trotzdem den Fehler bei mir nicht.

Auch wenn ich Remove-Item direkt anhänge wird keine Datei gelöscht.

Die Dateien bekommt er, denn diese stehen richtig in der erstellten Textdatei.

Habt ihr noch andere Vorschläge ?
Karo
Karo 09.07.2012 um 16:03:59 Uhr
Goto Top
Hi,

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
shannra666
shannra666 09.07.2012 um 16:43:00 Uhr
Goto Top
Hallo,

danke schonmal werde ich gleich testen.
shannra666
shannra666 09.07.2012 um 17:14:50 Uhr
Goto Top
Hallo nochmal,

danke hat alles funktioniert. Das Problem ist, dass ich die Daten bereits verarbeitet hatte mit Output-File.

Er hatte einfach nichts mehr zu löschen und $_.fullname hat mir noch gefehlt.
Naja dann muss ich halt vorab einmal die Datenaufbereiten zur Übergabe an die Textdatei und danach dann mit einer eigenen Anweisung löschen.

Vielen Dank für deine Hilfe.
joehuaba
joehuaba 16.06.2017 um 07:47:04 Uhr
Goto Top