Nettoyer les fichiers temporaires d'un serveur Windows

Note : 7,25/10

12345678910
Auteur : fabrice69 Article lu 11 943 fois

Description : Dans le cadre de la gestion de serveurs Windows, ce travail est indispensable et doit être fait régulièrement.
Cet article, vous présentera les dossiers à vider et vous donnera un exemple de script de nettoyage.




Nettoyer tous les répertoires temporaires des serveurs Windows

Il y a une tache qui est indispensable dans l'entretien des serveurs. De la même façon que votre poste de travail, les applications exécutées sur les serveurs créent des fichiers temporaires qu'il faut de temps en temps nettoyer.

Ce travail vient d'ailleurs accompagner les autres taches nécessaires pour l'optimisation d'une infrastructure existante :

Répertoires à nettoyer

Ainsi, il faut donc aller vider les répertoires suivant :

  • C:\Windows\Temp\
  • C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\
  • C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\

Et pour chaque compte utilisateur ayant un profil chargé sur le serveur :

  • C:\Documents and Settings\[User]\Local Settings\Temp\
  • C:\Documents and Settings\[User]\Local Settings\Temporary Internet Files\
  • C:\Documents and Settings\[User]\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache\

Ceci est très fastidieux, surtout si vous avez une Large Farm à gérer et que les administrateurs systèmes sont nombreux.

Script de nettoyage automatique

Je me suis donc basé d'un script existant :

Et j'ai donc créé une version integrant les spécificités des serveurs Web aussi bien en 32 Bits que 64 Bits, vous pouvez donc directement créer un fichier vide avec par exemple le nom suivant :

  • ClearAllTempFiles.CMD

Et y coller le contenu suivant :

REM @echo off

REM - This script searches through each home directory for temporary internet files and deletes them.

REM - The script also empties the temp folder

REM - THese lines set the starting directory for the script


set HDRIVE=c:

set HPATH=Documents and Settings


%HDRIVE%


REM - Clear all Windows Temp files

if exist "%HDRIVE%\WINDOWS\Temp" call :WindowsTempDelete 

if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files" call :ASPNET11TempDelete

if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" call :ASPNET20TempDelete

if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files" call :ASPNET2064TempDelete


cd \%HPATH%


REM - This line sets up the loop for the script

for /d %%i in (*) do call :ifthen %%i


goto end


REM - These lines check for the presence of the temporary internet file directories and call subroutines to deal with them.


:ifthen

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache" call :TempMSTSCCache %1

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Temporary Internet Files\Content.IE5" call :ContentDelete1 %1

 if exist "%HDRIVE%\%HPATH%\%1\windows\Temporary Internet Files\Content.IE5" call :ContentDelete2 %1

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\temp" call :TempDelete %1

goto :EOF


REM - This subroutine removes all folders located in the user's "Profile\Local Settings\Temporary Internet Files\Content.IE5"

REM - directory (in their home directory). It then returns back to the line that it was called from.


:WindowsTempDelete

 cd "%HDRIVE%\Windows\Temp"

 if exist "%HDRIVE%\Windows\Temp" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\Windows\Temp" del /q "%HDRIVE%\Windows\Temp\*"

goto:EOF


:ASPNET11TempDelete

 cd "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files" del /q "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\*"

goto:EOF


:ASPNET20TempDelete

 cd "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files" del /q "%HDRIVE%\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\*"

goto:EOF


:ASPNET2064TempDelete

 cd "%HDRIVE%\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files" del /q "%HDRIVE%\WINDOWS\Microsoft.NET\Framework64\v2.0.50727\Temporary ASP.NET Files\*"

goto:EOF


:ContentDelete1

 cd "%HDRIVE%\%HPATH%\%1\Local Settings\Temporary Internet Files\Content.IE5"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Temporary Internet Files\Content.IE5" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Temporary Internet Files\Content.IE5" del /q "%HDRIVE%\%HPATH%\%1\Local Settings\Temporary Internet Files\Content.IE5\*"

goto :EOF


REM - This subroutine removes all folders located in the user's "windows\Temporary Internet Files\Content.IE5" directory located

REM - in their home directory. It then removes all subfolders from this directory.


:ContentDelete2

 cd "%HDRIVE%\%HPATH%\%1\windows\Temporary Internet Files\Content.IE5"

 if exist "%HDRIVE%\%HPATH%\%1\windows\Temporary Internet Files\Content.IE5" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\%HPATH%\%1\windows\Temporary Internet Files\Content.IE5" del /q "%HDRIVE%\%HPATH%\%1\windows\Temporary Internet Files\Content.IE5\*"

goto :EOF 


REM - This subroutine removes all folders located in the user's "windows\Temporary Internet Files\Content.IE5" directory located

REM - in their home directory. It then removes all subfolders from this directory.


:TempDelete

 cd "%HDRIVE%\%HPATH%\%1\Local Settings\Temp"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Temp" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Temp" del /q "%HDRIVE%\%HPATH%\%1\Local Settings\Temp\*"

goto :EOF


:TempMSTSCCache

 cd "%HDRIVE%\%HPATH%\%1\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache" for /d %%n in (*) do rd /s /q "%%n"

 if exist "%HDRIVE%\%HPATH%\%1\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache" del /q "%HDRIVE%\%HPATH%\%1\Local Settings\Application Data\Microsoft\Terminal Server Client\Cache\*"

goto :EOF


:end


Tous les répertoires vont alors se vider des fichiers non bloqués.

Conclusion

Vos serveurs sont alors nettoyés. Vous pouvez éventuellement planifier l'exécution de ce script avec l'agent de planification de Windows afin de faire ce travail une fois par semaine ou une fois par mois.


Romelard Fabrice [MVP]

Intranet/Extranet CTO - SGS



A Propos de l'auteur

Romelard Fabrice [MVP]

Intranet/Extranet CTO - SGS



[ Voir la fiche de fabrice69 ] - [ Voir tous les articles de fabrice69 ] - [ Contacter fabrice69 ] - [ Visiter le site de fabrice69 ]



Mots définissants ce tutorial


Fichier Zip disponible

FichierTailleDate
ClearAllTempDirectories - W2008.cmd429302/04/2008 20:59:12
ClearAllTempDirectories - WXP2003.cmd504528/12/2007 19:33:08

Historique des mises à jour

DateDescription
02/04/2008 21:20:36Ajout des scripts dans le ZIP pour XP et 2003 ainsi que pour W2008

Commentaire(s)

Commentaire de : comme le 06/05/2008 18:06:33Envoyer un message à comme
J'AI COPIE LES COMMANDES CI DESSUS ET COLLER DANS UN FICHIER TEXT QUE J'AI RENOMME '.BAT' - CE QUI N'EST PAS EXPLIQUE CI DESSUS POUR DES GENTS QUI NE CONNAISSENT PAS COMMENT FAIRE -  ,SON EXECUTION EST RAPIDE SON EFFET EST IMPECABLE,, TRES GRAND MERCI POUR LES BONFAITEURS....
Commentaire de : eldim le 30/07/2008 15:58:37Envoyer un message à eldim
ça ne supprime pas le répertoire temp de chaque user... (ajouter %userprofile%\local settings\temp)
Commentaire de : fabrice69 le 30/07/2008 18:51:38Envoyer un message à fabrice69
Normalement si, mais je ne suis pas sur que ca le fasse pour tous les fichiers si ces utilisateurs sont connectés. Puisque les application créent des lock sur ces fichiers.

Ajouter un commentaire :

Pour ajouter un commentaire, vous devez vous identifier :
Si vous n'avez pas encore de compte sur un des sites TechnoS-SourceS / CodeS-SourceS cliquez ici pour créer votre compte.

Login et mot de passe que vous avez sur
CodeS-SourceS/TechnoS-SourceS




Mot de passe oublié ? / Activation de compte
Créer un compte