Pour les aficionados de Python, voici une transposition du script PWS dans ce langage...
CODE
Code python commenté :
Code : Tout sélectionner
import subprocess
import ctypes
import sys
# Fonction pour vérifier si le script est exécuté en tant qu'administrateur
def is_admin():
try:
return ctypes.windll.shell32.IsUserAnAdmin()
except:
return False
# Fonction pour exécuter une commande et capturer sa sortie
def run_command(command):
result = subprocess.run(command, capture_output=True, text=True, shell=True)
return result.returncode, result.stdout, result.stderr
# Fonction pour afficher les messages avec couleur
def print_colored(message, color):
colors = {
"green": "\033[92m",
"red": "\033[91m",
"yellow": "\033[93m",
"cyan": "\033[96m",
"reset": "\033[0m"
}
print(f"{colors[color]}{message}{colors['reset']}")
# Si le script n'est pas exécuté en tant qu'administrateur, redémarrer en mode administrateur
if not is_admin():
print("Redémarrage du script en tant qu'administrateur...")
ctypes.windll.shell32.ShellExecuteW(None, "runas", sys.executable, __file__, None, 1)
exit()
# Script pour nettoyer tous les journaux d'événements sur un système Windows
# Récupérer la liste de tous les journaux d'événements
retcode, eventLogs, error = run_command("wevtutil el")
if retcode != 0:
print_colored(f"Erreur lors de la récupération des journaux d'événements : {error}", "red")
exit(1)
eventLogs = eventLogs.splitlines()
# Initialiser une liste pour stocker les erreurs
errors = []
# Parcourir chaque journal d'événement et le nettoyer
for log in eventLogs:
retcode, stdout, stderr = run_command(f"wevtutil cl {log}")
if retcode == 0:
print_colored(f"Le journal {log} a été nettoyé avec succès.", "green")
else:
errorMessage = f"Erreur lors du nettoyage du journal {log} : {stderr}"
errors.append(errorMessage)
print_colored(errorMessage, "red")
# Afficher les erreurs après l'exécution
if errors:
print_colored("Des erreurs ont été rencontrées lors du nettoyage des journaux d'événements :", "yellow")
for error in errors:
print_colored(error, "red")
else:
print_colored("Tous les journaux d'événements ont été nettoyés avec succès sans aucune erreur.", "green")
# Laisser le message de résultat affiché à l'écran
print_colored("Appuyez sur une touche pour fermer...", "cyan")
input()
Instructions pour exécuter le script
Pré-requis :
- Assurez-vous d'avoir Python installé sur votre système. Vous pouvez télécharger Python depuis python.org.
- Ouvrez un éditeur de texte comme Notepad, Notepad++, ou VSCode.
- Copiez et collez le script ci-dessus dans l'éditeur de texte.
- Enregistrez le fichier avec une extension .py, par exemple nettoyer_journaux.py.
[*] Ouvrez l'invite de commandes en mode administrateur :
- Cliquez sur le menu Démarrer.
- Tapez cmd ou Invite de commandes.
- Faites un clic droit sur Invite de commandes et sélectionnez Exécuter en tant qu'administrateur.
Code : Tout sélectionner
cd chemin\vers\le\répertoire
Lancez le script en tapant :
Code : Tout sélectionner
python nettoyer_journaux.py
Privilèges administratifs :
- Le script nécessite des privilèges administratifs pour nettoyer les journaux d'événements. Si vous ne l'exécutez pas en tant qu'administrateur, il tentera de se redémarrer avec les privilèges nécessaires.
Affichage des résultats
- Le script affichera les journaux nettoyés avec succès en vert et les erreurs en rouge. Après l'exécution, il affichera un message pour appuyer sur une touche pour fermer, permettant de voir tous les messages avant la fermeture.