[PowerShell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Vous trouverez ici des scripts pour faciliter la gestion de votre ordinateur. Ils sont proposés tels quels par le rédacteur du message. La team ne vérifie pas la qualité de ces éléments et n'assure pas le support ni la maintenance. Vous les utilisez sous votre seule responsabilité.
Règles du forum
Pour les créateurs de scripts

Veuillez noter que les scripts que vous partagez ici sont proposés tels quels et la team ne vérifie pas leur qualité.
Nous vous rappelons que nous n'assurons ni le support ni la maintenance des scripts publiés.

Pour faciliter leur utilisation par les autres membres de la communauté, respectez ces consignes :
.
  • Utilisez les préfixes de langage pour taguer les messages.
  • Assurez-vous que vos scripts sont clairs et bien documentés
.
Merci de votre compréhension et de votre contribution.
Répondre
Avatar du membre
pboulanger
Administrateur du site
Administrateur du site
Messages : 1132
Enregistré le : mar. 17 mars 2020 11:49
A remercié : 108 fois
A été remercié : 111 fois
    Windows 10 Firefox

[PowerShell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Message par pboulanger »

Bonjour à tous,

Voici le premier script de ce nouveau forum :

C'est un script PowerShell qui permet de nettoyer tous les journaux d'événements sur un système Windows.
Le code est commenté et j'ai ajouté une description de l'action de ce script et la manière de l'exécuter.
Il est livré tel quel (testé sur mon Win 11 pro )

Le code

Code : Tout sélectionner

# Vérifier si le script est exécuté en tant qu'administrateur
$principal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
if (-not $principal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)) {
    # Redémarrer PowerShell en mode administrateur
    Start-Process powershell -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$PSCommandPath`"" -Verb RunAs
    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
$eventLogs = wevtutil el

# Initialiser une liste pour stocker les erreurs
$errors = @()

# Parcourir chaque journal d'événement et le nettoyer
foreach ($log in $eventLogs) {
    try {
        # Nettoyer le journal d'événement
        wevtutil cl $log
        Write-Host "Le journal $log a été nettoyé avec succès." -ForegroundColor Green
    } catch {
        # Stocker l'erreur dans la liste des erreurs
        $errorMessage = "Erreur lors du nettoyage du journal $log : $_"
        $errors += $errorMessage
        Write-Host $errorMessage -ForegroundColor Red
    }
}

# Afficher les erreurs après l'exécution
if ($errors.Count -gt 0) {
    Write-Host "Des erreurs ont été rencontrées lors du nettoyage des journaux d'événements :" -ForegroundColor Yellow
    foreach ($error in $errors) {
        Write-Host $error -ForegroundColor Red
    }
} else {
    Write-Host "Tous les journaux d'événements ont été nettoyés avec succès sans aucune erreur." -ForegroundColor Green
}

# Laisser le message de résultat affiché à l'écran
Write-Host "Appuyez sur une touche pour fermer..." -ForegroundColor Cyan
[System.Console]::ReadKey() | Out-Null
Que fait le script :
  • Vérification des droits administratifs :
    Le script crée un objet WindowsPrincipal pour l'utilisateur actuel et vérifie s'il a les droits d'administrateur.
  • Redémarrage en mode administrateur :
    Si l'utilisateur n'a pas les droits d'administrateur, le script redémarre PowerShell en mode administrateur en utilisant Start-Process avec l'option -Verb RunAs.
    Le script s'arrête ensuite avec exit pour empêcher l'exécution de la suite du script sans les droits nécessaires.
  • Utilise wevtutil el pour obtenir la liste de tous les journaux d'événements.
  • Parcourt chaque journal et utilise wevtutil cl pour le nettoyer.
  • Affiche un message de succès pour chaque journal nettoyé.
  • Capture et affiche, en rouge, toute erreur survenue lors du nettoyage d'un journal spécifique.
En utilisant ce script, si vous l'exécutez sans privilèges d'administrateur, il vous demandera d'entrer les informations d'identification administratives et relancera le script avec les privilèges appropriés.

Comment s'en servir ?
  • Enregistrer le code dans un fichier txt avec l'extension .ps1 par exemple NettoyerJournaux.ps1
  • Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
  • Un message de résultat apparaît à la fin de l'exécution
  • Appuyez sur n'importe quelle touche pour fermer le script
Amicalement,

Pierre
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 324
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 97 fois
A été remercié : 129 fois
    Android Firefox

Re: [Powershell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Message par acideburn »

Merci pour l'exemplarité de forme ( t'avait déja cela en stock :lol: ), je pense que la commu va appréciée ce nouveau forum 👍

Utilité et simplicité feront notre bonheur virtuel en améliorant notre hygiène numérique accessible pour tous, aux builder de faire en sorte que ça reste accessible pour chacun ou pas selon le niveau de compréhension pour l éthique du forum AAZ 😊
Avatar du membre
pboulanger
Administrateur du site
Administrateur du site
Messages : 1132
Enregistré le : mar. 17 mars 2020 11:49
A remercié : 108 fois
A été remercié : 111 fois
    Android Firefox

Re: [Powershell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Message par pboulanger »

Bonjour,

Effectivement c'est un exemple de ce qui peut se faire facilement ...
La première partie la vérification et le lancement de PowerShell (PwS) en mode admin est réutilisable "AS IS"

Pour la seconde partie, je l'ai faite hier soir ...Elle est tirée de ma panoplie de commandes utiles en PwS .

Bonne journée
Amicalement,

Pierre
Avatar du membre
pboulanger
Administrateur du site
Administrateur du site
Messages : 1132
Enregistré le : mar. 17 mars 2020 11:49
A remercié : 108 fois
A été remercié : 111 fois
    Windows 10 Firefox

Re: [Powershell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Message par pboulanger »

Bonjour,

J'ai apporté au code deux petites modifications oubliées hier soir.
Le code du message initial est corrigé.

  • Ajout d'une coloration rouge pour les erreurs
  • Ajout d'une pause à la fin de l'exécution du script


C'est plus "user friendly" comme cela !!!
Amicalement,

Pierre
Avatar du membre
MyPOV
Membre VIP
Membre VIP
Messages : 1264
Enregistré le : sam. 11 déc. 2021 14:40
A remercié : 117 fois
A été remercié : 152 fois
    Windows 10 Chrome

Re: [PowerShell] Supprimer tous les logs qui apparaissent dans l'observateur d'éléments

Message par MyPOV »

pboulanger :hai: je te remercie :clap: de manière générale pour ta démarche avec ce que tu as déjà publié et ce que tu publieras. Je les lirai pour prendre connaissance des problèmes qu'ils résolvent, mais il est peu probable que je les utilise tant que je ne me sens pas vraiment concerné ou que je ne dispose pas d'un temps suffisant pour explorer ces questions.
"𝓛𝓮 𝓭𝓸𝓾𝓽𝓮 𝓮𝓼𝓽 𝓵𝓮 𝓬𝓸𝓶𝓶𝓮𝓷𝓬𝓮𝓶𝓮𝓷𝓽 𝓭𝓮 𝓵𝓪 𝓼𝓪𝓰𝓮𝓼𝓼𝓮" 𝖠𝗋𝗂𝗌𝗍𝗈𝗍𝖾, 𝖼𝗈𝗆𝗉𝗅𝗈𝗍𝗂𝗌𝗍𝖾 𝖦𝗋𝖾𝖼
Répondre