Gardez x nombre de fichiers et supprimer tous les autres - Powershell

Je suis en train d'écrire un script qui va chercher dans un ensemble de dossiers et de ne garder que les 10 dernières des fichiers. Les fichiers dans chaque dossier peut être créé quotidienne, hebdomadaire ou mensuelle. J'ai besoin d'un script pour garder les 10 derniers exemplaires indépendamment de la date de création ou date de modification.

L'aide d'un autre post, j'ai créé le script ci-dessous qui fonctionne mais il ne marche pas garder 10 exemplaires il garde tout fichier qui n'est pas plus de 10 jours.

$ftppath = "C:\Reports"
Get-ChildItem $ftppath -recurse *_Report_*.zip -force|where {$_.lastwritetime -lt (get-date).adddays(-10)} |Remove-Item -force

Aucune idée sur comment je peux modifier cela fonctionne? Si j'utilise le script ci-dessous, il fonctionne, mais seulement si je n'ai pas de set-Recurse. Si vous utilisez le-Recurse interrupteur, vous obtenez un message d'erreur que j'ai énuméré ci-dessous le script.

# Keeps latest 10 files from a directory based on Creation Time

#Declaration variables
$path = "C:\Reports"                               # For example $path= C:\log\*.tmp
$total= (ls $path).count - 10 # Change number 5 to whatever number of objects you want to keep
# Script
ls $path |sort-object -Property {$_.CreationTime} | Select-Object -first $total | Remove-Item -force

Erreur: Sélectionnez-Objet : Ne peut pas valider l'argument sur le paramètre 'Premier'.
-7 argument est moins que le minimum de la plage autorisée de 0. La fourniture d'un
l'argument qui est supérieur à 0, puis réessayez la commande.

OriginalL'auteur mpowmap | 2012-01-10