Ce script PowerShell, intitulé WinAutoCheck_AAZ, est conçu pour automatiser la vérification et la réparation des fichiers système sous Windows (SFC et DSIM), tout en offrant une interface utilisateur conviviale et lisible.
Le code commenté
Code : Tout sélectionner
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
# Nom du logiciel : WinAutoCheck_AAZ
# Auteur : PiB pour TEAM-AAZ
# Version : 1.0.0.a (Janvier 2025)
# Codage : UTF 8
# --------------------------------------
Write-Host "Nom du logiciel : WinAutoCheck_AAZ" -ForegroundColor Cyan
Write-Host "Auteur : PiB pour TEAM-AAZ" -ForegroundColor Cyan
Write-Host "Version : 1.0.0.a (Janvier 2025)" -ForegroundColor Cyan
Write-Host "--------------------------------------" -ForegroundColor Cyan
# Vérification si le script est exécuté avec les droits administrateur
if (-not ([Security.Principal.WindowsPrincipal] [Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator")) {
Write-Host "Ce script nécessite des privilèges administrateurs pour fonctionner." -ForegroundColor Red
Write-Host "Relance du script en mode administrateur..." -ForegroundColor Cyan
# Préparation du script pour une réexécution en mode administrateur
$currentScript = $MyInvocation.MyCommand.Definition
Start-Process -FilePath "powershell.exe" -ArgumentList "-NoProfile -ExecutionPolicy Bypass -File `"$currentScript`"" -Verb RunAs
exit
}
Write-Host ""
Write-Host "Script exécuté en tant qu'administrateur.
" -ForegroundColor Green
# Vérification et activation de l'exécution des scripts si nécessaire
Write-Host "Vérification de la stratégie d'exécution PowerShell...
" -ForegroundColor Cyan
$currentPolicy = Get-ExecutionPolicy
if ($currentPolicy -ne 'RemoteSigned' -and $currentPolicy -ne 'Unrestricted') {
Write-Host "La stratégie actuelle est : $currentPolicy.
" -ForegroundColor Yellow
Write-Host "Modification en cours pour permettre l'exécution des scripts locaux signés (RemoteSigned).
" -ForegroundColor Cyan
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned -Force
Write-Host ""
Write-Host "Stratégie d'exécution modifiée avec succès : RemoteSigned." -ForegroundColor Green
} else {
Write-Host ""
Write-Host "La stratégie d'exécution actuelle permet déjà l'exécution des scripts : $currentPolicy." -ForegroundColor Green
}
# Étape 1 : Vérification et réparation des fichiers système avec SFC
Write-Host ""
Write-Host "Exécution de la commande SFC /scannow..." -ForegroundColor Cyan
sfc /scannow
# Vérification du résultat
if ($LASTEXITCODE -eq 0) {
# Write-Host "SFC n'a détecté aucune violation d'intégrité dans les fichiers système." -ForegroundColor Green
Write-Host ""
} else {
Write-Host "?? SFC a détecté des erreurs et a tenté des réparations. Passage à l'étape suivante avec DISM..." -ForegroundColor Yellow
Write-Host ""
# Étape 2 : Réparation de l'image Windows avec DISM
Write-Host "Vérification de l'état de l'image avec DISM..." -ForegroundColor Cyan
dism /Online /Cleanup-Image /CheckHealth
Write-Host "Analyse des erreurs potentielles avec DISM..." -ForegroundColor Cyan
Write-Host ""
dism /Online /Cleanup-Image /ScanHealth
Write-Host "Tentative de réparation de l'image Windows avec DISM..." -ForegroundColor Cyan
Write-Host ""
dism /Online /Cleanup-Image /RestoreHealth
# Résumé
if ($LASTEXITCODE -eq 0) {
Write-Host "L'image Windows a été réparée avec succès." -ForegroundColor Green
Write-Host ""
} else {
Write-Host "Impossible de réparer l'image Windows. Une intervention manuelle peut être nécessaire." -ForegroundColor Red
Write-Host ""
}
}
# Rétablissement de la stratégie d'exécution initiale
Write-Host ""
Write-Host "Rétablissement de la stratégie d'exécution initiale (si nécessaire)..." -ForegroundColor Cyan
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy $currentPolicy -Force
Write-Host ""
Write-Host "Stratégie d'exécution rétablie : $currentPolicy." -ForegroundColor Green
Write-Host ""
Write-Host "Script terminé avec succès." -ForegroundColor Cyan
Write-Host ""
#Write-Host "Appuyez sur une touche pour continuer..." -ForegroundColor Yellow
pause
- Vérification des droits administratifs :
- Le script s'assure qu'il est exécuté avec les privilèges administratifs nécessaires. Si ce n'est pas le cas, il relance automatiquement le script en mode administrateur.
- Vérification de la stratégie d'exécution PowerShell :
- Le script vérifie la stratégie d'exécution actuelle et la modifie temporairement si nécessaire pour permettre l'exécution de scripts locaux signés (RemoteSigned).
- Analyse et réparation des fichiers système avec SFC et DISM :
- Lance la commande sfc /scannow pour rechercher et corriger les fichiers système corrompus.
=> Si des erreurs sont détectées, il passe automatiquement à des réparations approfondies avec l'outil DISM (/CheckHealth, /ScanHealth, et /RestoreHealth).
- Lance la commande sfc /scannow pour rechercher et corriger les fichiers système corrompus.
- Rétablissement de la stratégie d'exécution initiale :
- Une fois les vérifications terminées, le script restaure la stratégie d'exécution PowerShell initiale pour ne pas impacter d'autres scripts.
- Interface utilisateur claire :
- Affiche des messages lisibles dans la console, incluant des statuts en couleurs pour indiquer le déroulement de chaque étape.
- Pause en fin d'exécution :
- Ajoute une pause à la fin pour permettre à l'utilisateur de lire les résultats avant que la console ne se ferme.
- Enregistrer le code dans un fichier txt avec l'extension .ps1 par exemple WinAutoCheck_AAZ.ps1
- Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
- Des messages de confirmation apparaissent au fur et à mesure de l'exécution du script
- Le script se ferme à la fin des opérations.