Voici la version V2 du batch de suppression des journaux Microsoft de l'observateur d'évènement.
Elle est validée sur Windows 11 Pro X64 23H2 build 22631.3958.
Le code commenté
Code : Tout sélectionner
@echo off
:: Définit la page de code sur UTF-8
chcp 65001 >nul
:: Vérifier si le script est exécuté en tant qu'administrateur
openfiles >nul 2>&1
if %errorlevel% neq 0 (
:: Redémarrer le script en mode administrateur
echo Demande de privilèges d'administrateur...
powershell -Command "Start-Process cmd -ArgumentList '/c %~s0' -Verb RunAs"
exit /b
)
:: Script pour nettoyer tous les journaux d'événements sur un système Windows
:: Vider le fichier error.log au début du script
>error.log echo.
:: Initialiser les compteurs de succès et d'erreurs
set "successCount=0"
set "errorCount=0"
:: Récupérer la liste de tous les journaux d'événements
for /f "tokens=*" %%A in ('wevtutil el') do (
set "log=%%A"
:: Nettoyer le journal d'événement
wevtutil cl "%%A" 2>>error.log
if %errorlevel% neq 0 (
echo Erreur lors du nettoyage du journal %%A >> error.log
set "errors=1"
set /a errorCount+=1
) else (
echo Le journal %%A a été nettoyé avec succès.
set /a successCount+=1
)
)
:: Afficher les résultats après l'exécution
if defined errors (
echo Des erreurs ont été rencontrées lors du nettoyage des journaux d'événements. Voir error.log pour plus de détails.
) else (
echo Tous les journaux d'événements ont été nettoyés avec succès sans aucune erreur.
)
:: Afficher le nombre de journaux nettoyés avec succès et le nombre d'erreurs
echo Nombre de journaux nettoyés avec succès : %successCount%
echo Nombre de journaux non effacés : %errorCount%
:: Laisser le message de résultat affiché à l'écran
echo Appuyez sur une touche pour fermer...
pause >nul
- Vérification des droits administratifs :
Le script vérifie si les droits administratifs sont présents en utilisant la commande openfiles. Si ce n'est pas le cas, il redémarre le script en mode administrateur en utilisant PowerShell.
- Vérification de la présence du fichier error.log
Si ce fichier existe, il est supprimé avant l'exécution du script.
- Récupération et nettoyage des journaux d'événements :
Le script utilise wevtutil el pour obtenir la liste de tous les journaux d'événements et wevtutil cl pour nettoyer chaque journal. Les erreurs rencontrées sont stockées dans une variable.
- Affichage des résultats :
Les résultats sont affichés après l'exécution de toutes les commandes de nettoyage.
- Affichage de deux compteurs
Le script affiche deux compteurs, l'un pour le nombre de fichiers effacés, l'autre pour le nombre de fichiers n'ayant pu être effacés, ces derniers sont recensés sous forme de liste dans le fichier Error.log dans le répertoire de lancement du script.
- Pause à la fin du script :
Le script utilise pause pour attendre que l'utilisateur appuie sur une touche avant de se fermer, permettant ainsi de voir tous les messages avant la fermeture.
- Ouvrez un éditeur de texte comme Notepad.
- Copiez et collez le script ci-dessus dans l'éditeur.
- Enregistrez le fichier avec l'extension .bat, par exemple nettoyer_journaux.bat.
- Double clic pour exécuter le script .