Eliminar carpetas y archivos más antiguos de X días con PowerShell

A veces tenemos la necesidad de eliminar varias carpetas o varios archivos dentro de una carpeta casi a diario.
Aquí pongo un Script que lo que realiza es eliminar el contenido del destino (incluido subdirectorios) y que tengan X días de antigüedad.

Una vez finalizado  la tarea de borrado, que envíe un e-mail notificándolo.

Borrado

###################################################

### Scritp que borra destino con una antigüedad de X días###

###################################################

############## © by Alex Milla #######################

###################################################

###################################################

$Now = Get-Date

# Aquí indicamos el nº de días que tienen que tener como mínimo para ser eliminados los archivos.

$Days = “3”

# Aquí indicamos la ruta destino donde ha de borrar los archivos.$TargetFolder = “E:\srv01db”

$LastWrite = $Now.AddDays(-$days)

$Files = get-childitem $TargetFolder -recurse -force | Where {!$_.PSIsContainer} | Where {$_.LastWriteTime -le “$LastWrite”}

foreach ($File in $Files)

{IF ($Files -ne $NULL)

{write-host “Deleting File $File.FullName” -foregroundcolor “Red” ; Remove-Item $File.FullName –recurse -force

}

}

ls E:\srv01db -r -fo | ? {$_.psIsContainer} sort fullName -des | ? {!(ls $_.fullName -fo)} | ri

send-mailmessage -to «mie-email@midominio.com« -from «servidorqueenvia@midominio.com« -subject «Fin eliminacion directorios mas de 3 dias BACKUP» -body «Fin eliminacion directorios mas de 3 dias BACKUP SRV01» -SmtpServer mimailserver.midominio.com