Après un redémarrage provoqué par Microsoft Defender Offline, l’absence d’information dans Windows Security peut laisser penser que l’analyse n’a pas fonctionné ; voici comment confirmer sa réussite, interpréter les journaux et automatiser la vérification, tout en comprenant les codes d’état courants.
Pourquoi Microsoft Defender Offline est indispensable
Le mode hors ligne démarre Windows Recovery Environment (WinRE) avant le chargement du système principal ; les menaces enracinées plus tôt dans la séquence de démarrage ne peuvent donc pas masquer leurs fichiers ni neutraliser l’antivirus. En revanche, parce que l’exécution se fait en dehors de la session utilisateur, l’interface graphique classique (Protection History, date du dernier scan) n’est mise à jour qu’en cas de détection. Sans menace, la console reste muette : c’est normal, mais déroutant. La confirmation passe alors par l’examen des journaux et de l’Observateur d’événements.
Les quatre vérifications essentielles
Étape | Action à réaliser | Résultat attendu / interprétation |
---|---|---|
1 | Ouvrir (en administrateur) le fichier :C:\Windows\Microsoft Antimalware\Support\msssWrapper.log | Rechercher la ligne :Offline scan completed with 0x00000000 → analyse réussie, aucune menace.Toute valeur ≠ 0x00000000 signale un problème ou une détection ; les détails (nom du virus, action) figurent plus haut dans le même fichier. |
2 | Lancer PowerShell puis exécuter :Get-MpThreatDetection | Sortie vide : pas de menace. Données présentes : liste précise des menaces, gravité, action (Quarantine, Remove, Clean, Block). |
3 | Ouvrir l’Observateur d’événements → Applications and Services Logs → Microsoft → Windows → Windows Defender → Operational | Événement 1000 : début de l’analyse. Événement 1001 : fin de l’analyse. Absence d’événements 1116/1117 intermédiaires (threat-detected/threat-resolved) = aucune menace. |
4 | (Optionnel) Lire :C:\Windows\Microsoft Antimalware\Tmp\MpCmdRun.log | Dans certaines versions antérieures de Windows 10/11, ce log récapitule la session hors ligne ; sur 24H2, il n’est plus systématique. |
Analyse détaillée des journaux
1. msssWrapper.log
Le fichier se crée à chaque lancement du moteur Antimalware pour WinRE et contient :
- Horodatage précis de l’amorçage et de la fermeture.
- Chemin vers le moteur et les définitions téléchargées avant le redémarrage (
%ProgramData%\Microsoft\Windows Defender\Definition Updates
). - Liste de fichiers scannés (option « Verbose » activée).
- Ligne finale du type :
[SCAN] Offline scan completed with 0x00000000
0x00000000 = succès, aucune menace.
0x80508019 = définitions invalides / expirées.
0x80508020 = moteur indisponible.
Toute autre valeur : consulter les entrées précédentes pour identifier la menace ou l’erreur.
2. Get-MpThreatDetection
Cette cmdlet interroge la base WMI root\Microsoft\ProtectionManagement
. Exemple de sortie :
InitialDetectionTime : 07/09/2025 14:54:31
ThreatName : Trojan:Win32/Wacatac.B!ml
ActionSuccess : True
CurrentThreatAction : Quarantine
Si l’analyse hors ligne a nettoyé une menace, vous la verrez ici jusqu’à ce que l’utilisateur efface manuellement l’historique dans Windows Security.
3. Journal Windows Defender (Event ID 1000/1001)
Les événements se présentent comme suit :
- 1000 – MpOfflineScanStart
Message : “The offline scan has started.”
Données : SignatureVersion, EngineVersion, PathToPE. - 1001 – MpOfflineScanComplete
Message : “The offline scan completed successfully.”
Données : ReturnValue (0 ou code d’erreur), ElapsedTime. - 1116/1117 n’apparaissent que si une menace est détectée (1116) puis traitée (1117).
Automatiser la confirmation avec PowerShell
Pour éviter de parcourir manuellement les journaux, ajoutez ce script (droits administrateur requis) :
# Vérification Defender Offline - version simplifiée
$logPath = 'C:\Windows\Microsoft Antimalware\Support\msssWrapper.log'
if (!(Test-Path $logPath)) {
Write-Warning "Fichier de log introuvable."
exit 1
}
$lastLine = (Get-Content $logPath -ErrorAction Stop | Select-Object -Last 1)
if ($lastLine -match '0x00000000') {
Write-Host "Analyse hors ligne : SUCCESS (aucune menace)" -ForegroundColor Green
} else {
Write-Host "ATTENTION : code retour non nul (`$lastLine`)" -ForegroundColor Red
# Afficher les 30 dernières lignes pour enquête
Get-Content $logPath -Tail 30
}
Vérification post-nettoyage
$threats = Get-MpThreatDetection
if ($threats) {
Write-Output "`nMenaces détectées :"
$threats | Format-Table ThreatName,CurrentThreatAction,InitialDetectionTime -AutoSize
} else {
Write-Output "`nHistorique des menaces : vide."
}
Astuce : placez-le dans %ProgramData%\Microsoft\Windows Defender
et déclenchez-le via le Planificateur de tâches « At log on » pour un rapport immédiat après redémarrage.
Comprendre les codes d’état fréquemment rencontrés
Code | Signification | Action recommandée |
---|---|---|
0x00000000 | Succès complet, aucune menace | Aucune action, tout est sain |
0x80508019 | Signatures obsolètes ou corrompues | Lancer Update-MpSignature puis relancer l’analyse hors ligne |
0x80508020 | Le moteur antimalware n’a pas pu se charger | Vérifier l’intégrité de MpCmdRun.exe , exécuter sfc /scannow |
0x80508023 | Accès refusé à un fichier ou volume | Démarrer en WinRE, utiliser chkdsk /f /r ou valider les droits NTFS |
0xC000000D | Paramètre non valide (ex. chemin introuvable) | Mettre à jour Windows Defender, vérifier les périphériques externes |
Bonnes pratiques avant de lancer un Offline Scan
- Mettre à jour les définitions :
PowerShell> Update-MpSignature -DefinitionsUpdateFile
(si vous disposez d’un package hors ligne) ou laisser Windows Update faire le travail. - Désactiver le chiffrement BitLocker (ou suspendre) si vous utilisez un TPM ancien ; certains firmwares empêchent WinRE de lire la partition chiffrée hors de la session.
- Sauvegarder vos fichiers critiques : bien que rare, la suppression automatique peut déplacer des exécutables nécessaires en quarantaine.
- Déconnecter les lecteurs réseaux si l’environnement WinRE ne dispose pas des pilotes requis ; l’analyse se focalisera sur les disques locaux.
Étapes post-analyse si une menace est détectée
- Consultez Protection History dans Windows Security pour visualiser les actions entreprises (Quarantine, Remove).
- Exécutez
MpCmdRun.exe -Restore -ListAll
pour identifier les éléments placés en quarantaine et les restaurer, si nécessaire, vers un répertoire isolé. - Effectuez un scan complet en ligne (Full Scan) pour confirmer qu’aucun résidu système n’a échappé à WinRE.
- Analysez le master boot record si le code 0x80508023 est apparu ; un rootkit peut bloquer l’accès pendant l’analyse hors ligne.
- Appliquez les mises à jour de sécurité Windows et des applications tierces (Java, Adobe, navigateurs) afin de corriger la vulnérabilité initiale.
FAQ – Questions fréquemment posées
Q : Je ne vois pas le fichier msssWrapper.log
. Est‑ce normal ?
R : Non. En l’absence totale de ce log, WinRE n’a probablement pas démarré. Vérifiez les événements Event ID 5007
(paramètres modifiés) ou un conflit avec un antivirus tiers.
Q : Pourquoi Get-MpThreatDetection
est vide alors que l’analyse a trouvé un virus ?
R : Si vous supprimez manuellement l’historique ou utilisez un outil de nettoyage (CCleaner, script CHKDSK), la base WMI peut avoir été purgée. Consultez alors Event ID 1116
et le détail du fichier dans msssWrapper.log
.
Q : Le code 0x80508019 persiste même après mise à jour !
R : Supprimez le dossier %ProgramData%\Microsoft\Windows Defender\Definition Updates\*
, puis relancez Update-MpSignature
pour forcer un téléchargement complet.
Conclusion
La clé pour valider un Microsoft Defender Offline Scan est de recouper trois sources : msssWrapper.log
, Get-MpThreatDetection
et l’Observateur d’événements. Leur lecture systématique, éventuellement automatisée par PowerShell, garantit une vision claire de l’état de la machine. Souvenez‑vous : pas d’information dans l’interface graphique ne signifie pas échec, mais plutôt absence de menace. Seuls les journaux fournissent la certitude recherchée.