Script PowerShell 5.1+ autonome, 11 modules, tous les rapports générés sur le Bureau.
Requiert les droits Administrateur. Auto-élévation intégrée via Start-Process -Verb RunAs.
- Windows 10 / 11 (PowerShell 5.1 minimum)
- Droits Administrateur local
Set-ExecutionPolicy:BypassouRemoteSignedau minimum sur le scope Process
&{
Invoke-WebRequest https://raw.githubusercontent.com/ps81frt/WintoolKit/main/Wintoolkit.ps1 -OutFile "$env:USERPROFILE\Downloads\Wintoolkit.ps1"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
Unblock-File -Path "$env:USERPROFILE\Downloads\Wintoolkit.ps1"
Add-MpPreference -ExclusionPath "$env:USERPROFILE\Downloads\Wintoolkit.ps1"
cd "$env:USERPROFILE\Downloads"
.\Wintoolkit.ps1
}Invoke-WebRequest https://raw.githubusercontent.com/ps81frt/WintoolKit/main/install.ps1 -OutFile "$env:USERPROFILE\Downloads\install.ps1"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& "$env:USERPROFILE\Downloads\install.ps1"&{
Invoke-WebRequest https://raw.githubusercontent.com/ps81frt/WintoolKit/main/Uninstall.ps1 -OutFile "$env:USERPROFILE\Downloads\Uninstall.ps1"
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass
& "$env:USERPROFILE\Downloads\Uninstall.ps1"
}# Menu interactif
.\Wintoolkit.ps1
# Appel direct d'un module
.\Wintoolkit.ps1 -Module <NomModule> [options]Modules disponibles via -Module :
| Valeur | Module |
|---|---|
InfoSys |
Inventaire système complet |
DiagBoot |
Diagnostic boot / disques |
AuditSOC |
Audit sécurité SOC/DFIR |
EDR |
Audit AV/EDR + remédiation |
WinDiag |
Diagnostic codes d'erreur |
SFC |
SFC + DISM |
NetShare |
Audit partages réseau |
ComparePC |
Comparaison entre deux postes |
EVCDiag |
Diagnostic Event Log |
CrashDiag |
Analyse BSOD / freezes |
GhostWin |
Détection installations ghost |
Inventaire complet du système, compressé en archive ZIP :
- OS / Machine :
Win32_OperatingSystem,Win32_SystemEnclosure, BIOS viaWin32_BIOS - GPU & moniteurs :
Win32_VideoController,WmiMonitorID(connexion, taille diagonale, serial) - Disques :
Get-PhysicalDisk,Win32_LogicalDisk(taille, espace libre, pourcentage) - RAM :
Win32_PhysicalMemory(fabricant, part number, bank, fréquence configurée) - Réseau :
Get-NetIPConfiguration,netsh interface tcp show global, rapport WLAN (netsh wlan show wlanreport) - Logiciels installés : registre
HKLM+HKCU(\Software\Microsoft\Windows\CurrentVersion\Uninstall), événements MSI (Event ID 1033) - Tâches planifiées : export XML de toutes les tâches non-Microsoft via
Export-ScheduledTask - Services :
Get-Servicecomplet (nom, statut, type de démarrage) - Defender :
Get-MpThreatDetection,Get-MpThreat,AntivirusProduct(SecurityCenter2) - Pilotes :
Get-PnpDevice,Win32_PnPSignedDriver,Win32_PnpEntity(codes erreurConfigManagerErrorCode) - Windows Update :
Get-WindowsUpdateLog,Win32_ReliabilityRecords(filtré sur erreurs WUClient) - Démarrage :
Win32_StartupCommand
Analyse en lecture seule de la chaîne de démarrage. Génère une transcription complète.
- Firmware : détection UEFI via
Confirm-SecureBootUEFI+ présencebootmgfw.efi, état Secure Boot - Disques physiques :
Get-Disk(bus type, partition style GPT/MBR, statut opérationnel) - Partitions :
Get-Partition(type EFI/MSR/Recovery/Basic, GUID, lettre) - Volumes :
Get-Volume(filesystem, espace, type de lecteur) - Partition EFI :
- Détection primaire via
Type == 'EFI'ou'System' - Fallback : partitions FAT32 < 1 Go sans lettre sur disques GPT
- Montage temporaire via
mountvolavec lettre libre (H→Z) - Suppression du popup Explorateur :
NoDriveTypeAutoRun = 0xFF+ arrêtShellHWDetectionpendant le montage, restauration exacte après - Résolution
HarddiskVolumeX → DiskNumberviaQueryDosDevice(P/Invoke kernel32) - Croisement avec
bcdedit /enum firmwarepour identifier l'EFI prioritaire dans le firmware - Vérification version
bootmgfw.efiviaFileVersionInfo
- Détection primaire via
- BitLocker :
Get-BitLockerVolume(statut, méthode, pourcentage de chiffrement) - BCD :
bcdedit /enum ALLavec colorisation syntaxique - Multi-boot : détection par présence de
ntoskrnl.exesur chaque volume monté - Entrées UEFI :
bcdedit /enum firmware - Plan NVMe autonome : génère les commandes
diskpart+bcdbootadaptées si l'EFI n'est pas sur le NVMe
-DebugEFI: active un log détaillé du montage EFI (Bureau\DiagBoot_EFI_Debug_<ts>.log)
Audit SOC/DFIR en 15 sections, sortie via Tee-Object (console + fichier simultanément) :
- Identité :
whoami /all, utilisateurs/groupes locaux, sessions actives (query session), Event ID 4624 (30 derniers) - Réseau : profils, interfaces, routes, cache ARP, cache DNS, binding adaptateurs
- Ports ouverts :
netstat -ano(LISTENING + ESTABLISHED), résolution PID → chemin processus + owner - Firewall : profils (
Get-NetFirewallProfile), règles INBOUND actives, règles OUTBOUND Block, règles critiques (SMB/RDP/WinRM/SSH/445/3389/5985) - Services : services running, liste ciblée (LanmanServer, TermService, WinRM, RemoteRegistry, Spooler, Docker, WSL…), services avec chemin non quoté (vecteur PrivEsc)
- SMB : registre (
SMB1/SMB2),Get-SmbServerConfiguration(signature, chiffrement, null sessions), partages, sessions, connexions ouvertes - RDP :
fDenyTSConnections, NLA (UserAuthentication), port RDP, WinRM (winrm enumerate), RemoteRegistry - Protocoles latéraux : IPv6 par interface, Teredo, IPHTTPS, NetBIOS (
TcpipNetbiosOptions), LLMNR (GPOEnableMulticast), mDNS (EnableMDNS) - ICMP : règles firewall filtrant sur ICMP/Ping/Echo
- Processus suspects : processus avec connexions réseau, processus sans chemin (hors liste blanche noyau), tâches planifiées actives non-Microsoft + leurs actions
- Registre persistance : Run Keys (5 emplacements HKCU/HKLM), LSA (
RunAsPPL,LmCompatibilityLevel,NoLMHash,RestrictAnonymous), UAC (EnableLUA,ConsentPromptBehaviorAdmin), PowerShell logging (ScriptBlock, Module, Transcription), AMSI - Defender :
Get-MpComputerStatus, exclusions (paths, process, extensions) - Événements sécurité : 4625 (échecs logon), 4624 (succès), 7045 (service installé), 1102 (log effacé), 4732/4728 (ajout groupe privilégié)
- Mises à jour :
Get-HotFix(15 derniers), dernière détection WU (registre) - Certificats : BitLocker via
manage-bde, certificats machine expirant < 90 jours, certificats racine non-Microsoft
Audit AV/EDR avec score de sécurité pondéré et remédiation optionnelle.
Détection AV/EDR :
AntivirusProduct(WMISecurityCenter2) : décodage du champproductState(hex, bits 2-3 = état)- Base vendeurs intégrée (16 AV grand public + 10 EDR entreprise) : CrowdStrike (
CSFalconService), SentinelOne (SentinelAgent), MDE (Sense), Carbon Black, Cybereason, Cortex XDR, Trellix, Harfanglab… - EDR hors SecurityCenter détectés par présence de service Windows
Score de sécurité : chaque vérification a un poids (10–15 pts). Score final en pourcentage avec liste des points KO et recommandations ciblées.
Remédiation via -Fix <cible> :
| Cible | Action |
|---|---|
Firewall |
Supprime GPO WindowsFirewall, netsh advfirewall reset, réactive tous les profils |
SmartScreen |
Supprime GPO EnableSmartScreen, force RequireAdmin dans le registre |
Defender |
Set-MpPreference -RealTimeProtectionEnabled $true, vérifie Tamper Protection avant |
SMBv1 |
Set-SmbServerConfiguration -EnableSMB1Protocol $false (CVE-2017-0144 / WannaCry) |
LSA |
RunAsPPL = 1 dans HKLM:\SYSTEM\CurrentControlSet\Control\Lsa |
All |
Applique les 5 remédiations dans l'ordre |
Partage de rapport :
-ShareDpaste: upload versdpaste.com/api/v2/(expiry 7 jours,application/x-www-form-urlencoded)-ShareGofile: upload multipart versstore1.gofile.io/contents/uploadfile
Résolution de codes d'erreur Windows avec base interne (~60 entrées) couvrant :
- NTSTATUS :
0xC000012F(IMAGE_FORMAT),0xC0000005(ACCESS_VIOLATION),0xC0000142(DLL_INIT_FAILED),0xC0000374(HEAP_CORRUPTION),0xC0000409(STACK_BUFFER_OVERRUN)… - Win32 :
0x00000002(FILE_NOT_FOUND),0x00000070(DISK_FULL),0x000000C1(BAD_EXE_FORMAT)… - HRESULT :
0x80004005(E_FAIL),0x80070057(INVALID_ARG),0x8007007E(MOD_NOT_FOUND)… - BSOD Stop Codes :
0x0000001A(MEMORY_MANAGEMENT),0x000000EF(CRITICAL_PROCESS_DIED),0x000000D1(DRIVER_IRQL_NOT_LESS_OR_EQUAL),0x00000050(PAGE_FAULT_IN_NONPAGED_AREA)…
Chaque entrée contient : nom symbolique, catégorie, sévérité, cause technique, solution étape par étape.
Paramètres :
-Query <code|DLL|mot-clé>: recherche directe-Scan: scan de l'Event Log pour extraire les crash récents-Dump <chemin>: analyse de fichier(s) minidump-Export: réexporte le dernier résultat
sfc /scannowavec capture de la sortieDISM /Online /Cleanup-Image /CheckHealth+/ScanHealth+/RestoreHealth- Parsing du log
CBS.logpour extraire uniquement les lignes d'erreur - Rapport HTML avec code couleur sur les résultats
Audit des partages réseau et de la surface d'exposition :
Get-SmbShare: partages actifs, chemins, permissionsGet-SmbServerConfiguration: SMB signing, chiffrement, null sessionsGet-NetFirewallRule: règles firewall relatives aux ports SMB (445, 139)- Mode
PUBLIC(-NetMode PUBLIC) : restreint aux informations sans chemins locaux
Comparaison de deux postes à partir de fichiers *-all.txt générés par NetShare (2 fichiers minimum, 10 maximum via -ReportFiles) :
- Diff sur logiciels installés, services, tâches planifiées, partages, ports ouverts
- Identification des éléments présents sur un poste et absents sur l'autre
Export et analyse de l'Event Log Windows :
- Extraction par canal (System, Application, Security, Setup)
- Filtrage par niveau (Error, Critical, Warning)
- Détection de patterns récurrents (même source, même Event ID)
Analyse BSOD, freezes, WHEA et crashs applicatifs :
- Event IDs : 41 (Kernel-Power / reboot inopiné), 1001 (BugCheck BSOD), WHEA Logger (erreurs matérielles)
- Historique configurable :
-HeuresHistorique <n>(défaut : 48h) - Crashs applicatifs : Event ID 1000 (Application Error), 1002 (Application Hang)
- Sessions Windows : Event IDs 6005/6006/6008 (démarrages, arrêts, arrêts inattendus)
- Export :
-ExportCSVet/ou-ExportHTML
Détection d'installations Windows résiduelles ou fantômes :
- Scan de tous les volumes montés à la recherche de
\Windows\System32\ntoskrnl.exe - Comparaison des versions (
FileVersionInfo) avec l'installation active - Détection de profils utilisateurs orphelins (
C:\Users\*) sur volumes secondaires - Export CSV + HTML des installations trouvées
| Module | Fichier(s) générés |
|---|---|
| InfoSys | Bureau\InfoSys_<ts>.zip |
| DiagBoot | Bureau\DiagBoot_<ts>.txt |
| AuditSOC | Bureau\AuditSOC_<ts>.txt |
| EDR | Bureau\EDR_<ts>\Rapport_EDR.txt |
| WinDiag | Bureau\WinDiag_<ts>.txt |
| SFC | Bureau\CBS_SFC_DISM_Report_<ts>.txt + .html |
| NetShare | Bureau\NetShare_<ts>.html |
| ComparePC | Bureau\CPR_<ts>\ |
| EVCDiag | Bureau\EVC_Export\ |
| CrashDiag | Bureau\CrashDiag_<ts>\*.txt + *.html |
| GhostWin | Bureau\GhostWin_<ts>\*.csv + *.html |
Le script effectue les opérations suivantes susceptibles de déclencher un antivirus :
- Lecture de
Win32_PhysicalMemory,Win32_PnPEntity,WmiMonitorIDvia WMI - Accès à
root/SecurityCenter2(namespace WMI AV) - Appel de
QueryDosDevicevia P/Invoke (kernel32.dll) pour la résolution des volumes EFI - Écriture temporaire dans
HKLM:\SOFTWARE\...\Policies\Explorer(NoDriveTypeAutoRun) pendant le montage EFI, restaurée immédiatement après - Appel à
bcdedit /enum firmwareetmountvol(nécessite droits Admin) Add-MpPreference -ExclusionPathlors de l'installation (modifie la configuration Defender)
Aucune connexion réseau sortante n'est établie sauf si -ShareDpaste ou -ShareGofile est passé explicitement.
Set-StrictMode -Version Latestest actif. Toute variable non initialisée lève une erreur.$ErrorActionPreference = 'SilentlyContinue'sur les appels WMI/CIM non critiques — les erreurs sont silencieuses par design pour les postes avec configurations restreintes.- Si Defender bloque le script en cours d'exécution, la transcription en cours (
Start-Transcript) sera tronquée. Le rapport partiel est conservé sur le Bureau. - Le module DiagBoot arrête temporairement le service
ShellHWDetectionpendant le montage de la partition EFI. Il est redémarré automatiquement. Si le script est interrompu pendant cette phase, relancerStart-Service ShellHWDetectionmanuellement. - Les modules de remédiation EDR (
-Fix) modifient le registre système et la configuration SMB. Ces changements sont persistants et ne sont pas annulés automatiquement.