Supprimer les anciens fichiers dans la corbeille avec powershell

Ok, j'ai un script que je suis en train d'écrire dans powershell qui va supprimer les anciens fichiers dans la corbeille. Je veux supprimer tous les fichiers de la corbeille qui ont été supprimés de plus de 2 jours. J'ai fait beaucoup de recherche sur ce sujet et n'ai pas trouvé une réponse appropriée.

C'est ce que j'ai à ce jour(trouvé le script en ligne, je ne sais pas beaucoup de powershell):

$Path = 'C' + ':$Recycle.Bin'
Get-ChildItem $Path -Force -Recurse -ErrorAction SilentlyContinue |
#Where-Object { $_.LastWriteTime -lt (Get-Date).AddDays(-3) } |
Remove-Item -Recurse -exclude *.ini -ErrorAction SilentlyContinue

C'est génial de travailler avec une exception, il vérifie le fichier de paramètre "LastWriteTime". C'est génial si l'utilisateur supprime le fichier, ils ont même jour, ils le modifient. Sinon elle échoue.

Comment puis-je modifier ce code afin qu'il va vérifier si le fichier a été supprimé, pas quand elle a été écrite.

-Sur une note de côté, si j'exécute ce script à partir d'un compte administrateur sur le Serveur Microsoft 2008 ça va fonctionner pour tous les utilisateurs de corbeilles ou juste la mienne?


Réponse:

le code qui a fonctionné pour moi est:

$Shell = New-Object -ComObject Shell.Application
$Global:Recycler = $Shell.NameSpace(0xa)

foreach($item in $Recycler.Items())
{
    $DeletedDate = $Recycler.GetDetailsOf($item,2) -replace "\u200f|\u200e",""
    $dtDeletedDate = get-date $DeletedDate 
    If($dtDeletedDate -lt (Get-Date).AddDays(-3))
    {
        Remove-Item -Path $item.Path -Confirm:$false -Force -Recurse
    }#EndIF
}#EndForeach item

Il travaille incroyable pour moi, cependant 2 questions demeurent...Comment dois-je faire cela avec plusieurs disques? et cela s'applique à tous les utilisateurs ou seulement moi?

OriginalL'auteur Dead_Jester | 2014-04-02