Script Powershell pour supprimer le contenu du dossier de téléchargement pour tous les utilisateurs

Dans ce guide, je vais vous montrer comment supprimer le contenu du dossier Téléchargements d'un utilisateur à l'aide d'un simple script Powershell. Ce script est particulièrement utile à utiliser sur un serveur Windows Server 2019 Terminal Server ou un serveur hôte rdweb.

Naturellement, l'exécution d'un script sur tous les utilisateurs d'un serveur peut être effrayant, je vais donc vous montrer comment modifier le script pour l'exécuter sur 1 utilisateur d'abord pour s'assurer qu'il fonctionne correctement avant de le déployer sur tous les utilisateurs d'un serveur.

Une fois que vous avez vérifié que le dossier "C:\Users\%username%\Downloads" est vide, vous pouvez utiliser le planificateur de tâches pour automatiser le processus et le configurer pour qu'il s'exécute tous les jours, toutes les nuits, toutes les semaines ou à tout autre intervalle que vous souhaitez.

À la fin de cet article, j'ai également développer un script Powershell pour supprimer tous les fichiers temporaires dans un profil utilisateur.

Ce script peut être exécuté sur n'importe quelle version de Windows, y compris Windows 10 et Server 2019.

Pourquoi supprimer les fichiers du dossier Téléchargements ?

Il y a un certain nombre de raisons pour lesquelles vous souhaitez faire cette opération. Les dossiers de téléchargement sont souvent utilisés comme dossiers temporaires. Les fichiers et programmes indésirables y sont stockés et, dans 99 % des cas, les utilisateurs ne les suppriment jamais eux-mêmes.

Dans un environnement terminal server/RemoteApp, lorsqu'un utilisateur se connecte, soit par le biais du bureau à distance (RDP), soit par le biais de l'URL RemoteApp, Windows crée un nouveau dossier/profil utilisateur sur le lecteur C:. Cela crée bien sûr un dossier Téléchargements, Bureau, Images, etc. (C:\users\username1\Downloads)

C:\users\username1, C:\users\username2, etc.

Disons que vous avez 50 utilisateurs qui peuvent se connecter à votre serveur. Si chaque utilisateur télécharge un fichier de 1 Go dans son dossier Téléchargements, cela représente 50 Go de données supplémentaires que vous devez sauvegarder chaque nuit. Et comme il s'agit de données inutiles qui n'ont pas vraiment besoin d'être sauvegardées, cela ne fait qu'augmenter le temps d'exécution de vos tâches de sauvegarde et remplir l'espace disponible sur le serveur.

J'utilise donc un script Powershell d'une ligne qui supprime le contenu du dossier Download et je l'ai programmé pour qu'il s'exécute tous les jours à 17 heures en utilisant le planificateur de tâches de Windows.

Script Powershell pour nettoyer le dossier des téléchargements

Avant de vous montrer le script permettant de supprimer les téléchargements de tout le monde, vous voudrez le tester avec un seul utilisateur du serveur . S'il fonctionne comme prévu, vous pouvez utiliser le deuxième script pour l'appliquer à tous les utilisateurs.

Comment supprimer le contenu des téléchargements pour un seul utilisateur

Ce script va vider les téléchargements pour un seul utilisateur. Vous devez d'abord tester ce script pour vous assurer qu'il fonctionne pour vous.

  1. Ouvrez Powershell.
  2. Collez le code ci-dessous. Remplacez l'utilisateur "Administrator" par le nom d'utilisateur de n'importe quel utilisateur dans votre chemin C:\users*.
Get-ChildItem C:\Users\Administrator\Downloads\* | Remove-Item -recurse -force

Le paramètre -recurse est facultatif, mais doit être utilisé pour que le contenu des sous-répertoires soit également supprimé.

Comment supprimer le contenu d'un dossier de téléchargement pour tous les utilisateurs ?

Ce script ne diffère pas beaucoup, si ce n'est que nous utilisons un wildcard (*) au lieu de coder en dur un utilisateur spécifique.

Get-ChildItem C:\Users\*\Downloads\* | Remove-Item -recurse -force

Comment supprimer le contenu des dossiers de téléchargement tous les X jours ?

À cette étape, vous avez plusieurs façons d'automatiser l'exécution de cette opération.

Vous pouvez soit enregistrer le script Powershell dans le dossier de démarrage de Windows (C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp) afin qu'il s'exécute à chaque redémarrage de l'ordinateur.

Vous pouvez également l'utiliser pour un script de connexion.

Je préfère utiliser le planificateur de tâches. Il me permet de modifier rapidement le moment et la fréquence d'exécution du script.

Planifier la suppression du contenu du téléchargement à l'aide du planificateur de tâches

  1. Ouvrez le planificateur de tâches à partir du menu Démarrer.
  2. Créez une nouvelle tâche.
Get-ChildItem C:\Users\*\Downloads\* | Remove-Item -recurse -force

Faites un test

Maintenant, il suffit de faire un clic droit sur la nouvelle tâche > Exécuter. Elle devrait supprimer avec succès le contenu du dossier Téléchargements de tous les utilisateurs ! Pour vérifier, naviguez jusqu'à C:\users\username et cliquez sur quelques utilisateurs.

Si tout s'est bien passé, vous êtes prêt à vous lancer !

BONUS : Script Powershell pour supprimer les fichiers temporaires

Si vous cherchez également un moyen de supprimer les fichiers Temp pour tous les utilisateurs d'un serveur, vous pouvez utiliser ce script. Le répertoire %TEMP% est situé dans C:\users\username\appdata\Local\Temp.

Ce script passe en revue tous les utilisateurs du répertoire C:\users\ et supprime récursivement tous les fichiers TEMP.

Si un utilisateur est actuellement connecté à une session de serveur, il y a probablement des fichiers/programmes dans le répertoire %TEMP% qui sont utilisés et ne peuvent pas être supprimés. Pour cette raison, vous pouvez rencontrer des erreurs. Nous les ignorons donc dans le script.
Je recommande de créer un GPO pour déconnecter automatiquement les utilisateurs après X minutes d'inactivité, puis de définir ce script pour qu'il s'exécute lorsque personne ne doit être connecté (par exemple, à 4 heures du matin).
Get-ChildItem -Path 'C:\Users' | foreach {
    Get-ChildItem -Path "$($_.FullName)\AppData\Local\Temp" -ErrorAction Ignore | Remove-Item -recurse -force
}
Vous vous êtes abonné avec succès à CodeClan
Parfait ! Ensuite, complétez le paiement pour obtenir un accès complet à tout le contenu premium.
Erreur ! Impossible de s'inscrire. Lien invalide.
Bienvenue ! Vous vous êtes connecté avec succès.
Erreur ! Impossible de se connecter. Veuillez réessayer.
Succès ! Votre compte est entièrement activé, vous avez maintenant accès à tout le contenu.
Erreur ! Le paiement Stripe a échoué.
Succès ! Vos informations de facturation sont mises à jour.
Erreur ! La mise à jour des informations de facturation a échoué.