ANAVEM
Languageen
Windows Security Event Viewer displaying Event ID 4647 user logoff events on a security monitoring dashboard
Event ID 4647InformationMicrosoft-Windows-Security-AuditingWindows

ID d'événement Windows 4647 – Microsoft-Windows-Security-Auditing : Déconnexion initiée par l'utilisateur

L'ID d'événement 4647 enregistre lorsqu'un utilisateur initie une déconnexion d'une session Windows. Cet événement d'audit de sécurité suit les déconnexions initiées par l'utilisateur à des fins de conformité et de surveillance de la sécurité.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 20269 min de lecture 0
Event ID 4647Microsoft-Windows-Security-Auditing 5 méthodes 9 min
Référence événement

Signification de cet événement

L'ID d'événement 4647 est généré par le sous-système d'audit de sécurité Windows lorsqu'un utilisateur initie explicitement une action de déconnexion. Cet événement fait partie de la catégorie d'audit de connexion/déconnexion et nécessite que la politique "Audit Logoff" soit activée. L'événement capture le moment exact où un utilisateur décide de terminer sa session, fournissant une piste d'audit claire des terminaisons de session initiées par l'utilisateur.

L'événement contient des informations critiques, y compris l'identifiant de sécurité de l'utilisateur (SID), le nom du compte, le domaine, l'ID de connexion et le type de connexion. Ces données aident les administrateurs à corréler les événements de déconnexion avec les événements de connexion correspondants (4624) pour calculer la durée de la session et analyser les modèles de comportement des utilisateurs. Le champ ID de connexion est particulièrement important car il lie l'événement de déconnexion à la session de connexion spécifique qui est en cours de terminaison.

Windows génère cet événement via l'Autorité de sécurité locale (LSA) lorsque l'API ExitWindowsEx est appelée avec le drapeau EWX_LOGOFF, ou lorsque les utilisateurs sélectionnent des options de déconnexion via l'interface Windows. Le timing de l'événement est précis, se produisant avant que le nettoyage réel de la session ne commence, garantissant que toutes les informations liées à la session sont encore disponibles pour la journalisation. Cela rend l'ID d'événement 4647 plus fiable que d'autres événements de terminaison de session pour suivre les actions intentionnelles des utilisateurs par rapport aux déconnexions initiées par le système.

S'applique à

Windows 10Windows 11Windows Server 2019/2022/2025
Analyse

Causes possibles

  • Utilisateur cliquant sur "Se déconnecter" depuis le menu Démarrer ou le menu du compte utilisateur
  • Utilisateur sélectionnant "Fermer la session" depuis l'écran de sécurité Ctrl+Alt+Suppr
  • Applications appelant l'API ExitWindowsEx avec le drapeau EWX_LOGOFF
  • Utilisateurs de Bureau à distance se déconnectant via les procédures de déconnexion appropriées
  • Utilisateurs des Services Terminal mettant fin aux sessions via les commandes de déconnexion
  • Tâches planifiées ou scripts exécutant des opérations de déconnexion
  • Déconnexions imposées par la stratégie de groupe en raison de restrictions de temps
  • Retrait de la carte à puce déclenchant une déconnexion automatique (lorsqu'elle est configurée)
Méthodes de résolution

Étapes de dépannage

01

Examiner les détails de l'événement dans le Visualiseur d'événements

Commencez par examiner les détails de l'événement pour comprendre le contexte de déconnexion et les informations de l'utilisateur.

  1. Ouvrez Observateur d'événements en appuyant sur Win + R, en tapant eventvwr.msc, et en appuyant sur Entrée
  2. Accédez à Journaux WindowsSécurité
  3. Filtrez pour l'ID d'événement 4647 en cliquant avec le bouton droit sur le journal Sécurité et en sélectionnant Filtrer le journal actuel
  4. Entrez 4647 dans le champ ID d'événements et cliquez sur OK
  5. Double-cliquez sur un événement 4647 pour voir des informations détaillées, y compris :
    • Sujet : Compte utilisateur qui a initié la déconnexion
    • ID de connexion : Identifiant unique lié à l'événement de connexion original
    • Type de connexion : Méthode utilisée pour la connexion originale (2=Interactive, 3=Réseau, 10=RemoteInteractive)
  6. Notez l'horodatage et corrélez avec tout incident de sécurité ou rapport d'utilisateur
Astuce pro : Utilisez l'ID de connexion pour trouver l'ID d'événement correspondant 4624 (connexion) pour calculer la durée totale de la session.
02

Interroger les événements avec PowerShell

Utilisez PowerShell pour interroger et analyser efficacement les occurrences de l'ID d'événement 4647 sur des périodes spécifiques.

  1. Ouvrez PowerShell en tant qu'administrateur
  2. Interrogez les événements de déconnexion récents avec un filtrage de base :
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4647} -MaxEvents 50 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap
  3. Filtrez les événements pour des utilisateurs ou des périodes spécifiques :
    # Filtrer par utilisateur spécifique
    $Events = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4647; StartTime=(Get-Date).AddDays(-7)}
    $Events | Where-Object {$_.Message -like "*username*"} | Format-List TimeCreated, Message
  4. Extraire des informations détaillées des propriétés de l'événement :
    # Analyser les détails de l'événement
    $LogoffEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4647} -MaxEvents 20
    foreach ($Event in $LogoffEvents) {
        $EventXML = [xml]$Event.ToXml()
        $SubjectUserName = $EventXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
        $LogonId = $EventXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectLogonId'} | Select-Object -ExpandProperty '#text'
        Write-Output "Time: $($Event.TimeCreated) | User: $SubjectUserName | Logon ID: $LogonId"
    }
  5. Exporter les résultats pour une analyse plus approfondie :
    Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4647; StartTime=(Get-Date).AddDays(-30)} | Export-Csv -Path "C:\Temp\Logoff_Events.csv" -NoTypeInformation
03

Corréler les événements de connexion et de déconnexion

Associez l'ID d'événement 4647 avec les événements de connexion correspondants pour analyser les modèles de session et identifier les anomalies.

  1. Créez un script PowerShell pour corréler les événements de connexion (4624) et de déconnexion (4647) :
    # Obtenez les événements de connexion et de déconnexion des dernières 24 heures
    $StartTime = (Get-Date).AddDays(-1)
    $LogonEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624; StartTime=$StartTime}
    $LogoffEvents = Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4647; StartTime=$StartTime}
    
    # Créez un tableau de corrélation
    $SessionData = @()
    foreach ($LogoffEvent in $LogoffEvents) {
        $LogoffXML = [xml]$LogoffEvent.ToXml()
        $LogonId = $LogoffXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectLogonId'} | Select-Object -ExpandProperty '#text'
        $UserName = $LogoffXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
        
        # Trouvez l'événement de connexion correspondant
        $MatchingLogon = $LogonEvents | Where-Object {
            $LogonXML = [xml]$_.ToXml()
            $LogonLogonId = $LogonXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectLogonId'} | Select-Object -ExpandProperty '#text'
            $LogonLogonId -eq $LogonId
        } | Select-Object -First 1
        
        if ($MatchingLogon) {
            $SessionDuration = $LogoffEvent.TimeCreated - $MatchingLogon.TimeCreated
            $SessionData += [PSCustomObject]@{
                User = $UserName
                LogonTime = $MatchingLogon.TimeCreated
                LogoffTime = $LogoffEvent.TimeCreated
                Duration = $SessionDuration.ToString()
                LogonId = $LogonId
            }
        }
    }
    
    $SessionData | Format-Table -AutoSize
  2. Identifiez les modèles de session inhabituels tels que les sessions très courtes ou très longues
  3. Cherchez des événements de déconnexion sans événements de connexion correspondants, ce qui pourrait indiquer une falsification des journaux
04

Configurer les politiques d'audit avancées

Assurez-vous de configurer correctement la politique d'audit pour capturer tous les événements de déconnexion pertinents et optimiser les paramètres de journalisation.

  1. Vérifiez les paramètres actuels de la politique d'audit :
    auditpol /get /category:"Logon/Logoff"
  2. Activez l'audit détaillé des connexions/déconnexions si ce n'est pas déjà configuré :
    # Activer l'audit de déconnexion
    auditpol /set /subcategory:"Logoff" /success:enable /failure:enable
    
    # Vérifier le paramètre
    auditpol /get /subcategory:"Logoff"
  3. Configurez la stratégie de groupe pour les environnements d'entreprise :
    • Ouvrez Group Policy Management Console
    • Accédez à Configuration de l'ordinateurStratégiesParamètres WindowsParamètres de sécuritéConfiguration avancée de la politique d'audit
    • Développez Politiques d'auditLogon/Logoff
    • Configurez Audit Logoff sur Succès et Échec
  4. Définissez la taille du journal de sécurité pour accueillir l'augmentation de la journalisation :
    # Augmenter la taille du journal de sécurité à 100 Mo
    wevtutil sl Security /ms:104857600
  5. Configurez la politique de rétention des journaux dans le registre :
    # Définir la rétention des journaux (1 = écraser si nécessaire, 0 = écraser les événements plus anciens que X jours)
    Set-ItemProperty -Path "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Security" -Name "Retention" -Value 0
    Set-ItemProperty -Path "HKLM\SYSTEM\CurrentControlSet\Services\EventLog\Security" -Name "AutoBackupLogFiles" -Value 1
Avertissement : L'activation de la journalisation d'audit complète peut augmenter considérablement le volume des journaux. Surveillez l'espace disque et configurez des politiques de rotation des journaux appropriées.
05

Mettre en œuvre la surveillance et l'alerte automatisées

Configurez la surveillance automatisée pour l'ID d'événement 4647 afin de détecter des modèles de déconnexion inhabituels ou des incidents de sécurité.

  1. Créez un script PowerShell pour une surveillance continue :
    # Monitor-LogoffEvents.ps1
    param(
        [int]$CheckIntervalMinutes = 5,
        [string]$LogPath = "C:\Logs\LogoffMonitoring.log"
    )
    
    $LastCheck = (Get-Date).AddMinutes(-$CheckIntervalMinutes)
    
    while ($true) {
        $NewLogoffs = Get-WinEvent -FilterHashtable @{
            LogName='Security'
            Id=4647
            StartTime=$LastCheck
        } -ErrorAction SilentlyContinue
        
        foreach ($Event in $NewLogoffs) {
            $EventXML = [xml]$Event.ToXml()
            $UserName = $EventXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectUserName'} | Select-Object -ExpandProperty '#text'
            $Domain = $EventXML.Event.EventData.Data | Where-Object {$_.Name -eq 'SubjectDomainName'} | Select-Object -ExpandProperty '#text'
            
            $LogEntry = "$(Get-Date): User logoff detected - $Domain\$UserName at $($Event.TimeCreated)"
            Add-Content -Path $LogPath -Value $LogEntry
            
            # Add alerting logic here (email, SIEM integration, etc.)
            # Example: Send alert for after-hours logoffs
            $Hour = $Event.TimeCreated.Hour
            if ($Hour -lt 6 -or $Hour -gt 22) {
                Write-Warning "After-hours logoff detected: $Domain\$UserName"
            }
        }
        
        $LastCheck = Get-Date
        Start-Sleep -Seconds ($CheckIntervalMinutes * 60)
    }
  2. Planifiez le script de surveillance en tant que service Windows ou tâche planifiée
  3. Configurez le transfert d'événements Windows (WEF) pour la journalisation centralisée :
    • Configurez un serveur collecteur d'événements Windows
    • Configurez les ordinateurs sources pour transférer l'ID d'événement 4647
    • Créez des vues et abonnements personnalisés pour les événements de déconnexion
  4. Intégrez avec des solutions SIEM en utilisant le transfert de journal d'événements Windows ou des agents
  5. Configurez des tâches personnalisées dans le Visualiseur d'événements pour déclencher sur l'ID d'événement 4647 :
    • Dans le Visualiseur d'événements, cliquez avec le bouton droit sur un événement 4647
    • Sélectionnez Attacher une tâche à cet événement
    • Configurez des réponses automatisées telles que l'exécution de scripts ou l'envoi de notifications

Aperçu

L'ID d'événement 4647 se déclenche chaque fois qu'un utilisateur initie une déconnexion de sa session Windows. Cet événement d'audit de sécurité fait partie du système complet de suivi des connexions/déconnexions de Windows et apparaît dans le journal de sécurité lorsque les politiques d'audit sont correctement configurées. Contrairement à l'ID d'événement 4634 qui enregistre toutes les terminaisons de session, y compris celles initiées par le système, l'ID d'événement 4647 capture spécifiquement les déconnexions initiées par l'utilisateur via le menu Démarrer, Ctrl+Alt+Suppr, ou des appels de déconnexion programmatiques.

Cet événement est crucial pour la surveillance de la sécurité, l'audit de conformité et le suivi de l'activité des utilisateurs. Il fournit des informations détaillées sur qui s'est déconnecté, quand et depuis quelle session. L'événement se déclenche immédiatement lorsqu'un utilisateur clique sur "Se déconnecter" ou lorsque des applications appellent l'API ExitWindowsEx avec des indicateurs spécifiques. Les administrateurs système s'appuient sur cet événement pour suivre le comportement des utilisateurs, enquêter sur les incidents de sécurité et maintenir des pistes d'audit pour la conformité réglementaire.

L'événement apparaît dans les environnements où l'audit des connexions/déconnexions est activé via la stratégie de groupe. Il est particulièrement précieux dans les environnements d'entreprise où le suivi des sessions utilisateur est obligatoire pour les politiques de sécurité ou les cadres de conformité comme SOX, HIPAA ou PCI-DSS.

Questions Fréquentes

Quelle est la différence entre l'ID d'événement 4647 et l'ID d'événement 4634 ?+
L'ID d'événement 4647 enregistre spécifiquement les déconnexions initiées par l'utilisateur lorsqu'une personne choisit activement de se déconnecter, tandis que l'ID d'événement 4634 capture toutes les terminaisons de session, y compris celles initiées par le système comme les expirations, les déconnexions ou les déconnexions forcées. L'événement 4647 offre un suivi plus précis des actions intentionnelles des utilisateurs, ce qui le rend précieux pour l'analyse comportementale et la surveillance de la sécurité. L'événement 4634 est plus large et inclut les événements de nettoyage automatique des sessions.
Pourquoi ne vois-je pas l'ID d'événement 4647 dans mon journal de sécurité ?+
L'ID d'événement 4647 nécessite que la politique 'Audit Logoff' soit activée. Vérifiez vos paramètres de politique d'audit en utilisant la commande 'auditpol /get /subcategory:"Logoff"'. Si cela indique 'No Auditing', activez-le avec 'auditpol /set /subcategory:"Logoff" /success:enable'. Dans les environnements de domaine, assurez-vous que la stratégie de groupe est configurée pour auditer les événements de déconnexion. Vérifiez également que le journal de sécurité n'est pas plein et dispose de suffisamment d'espace pour enregistrer de nouveaux événements.
L'ID d'événement 4647 peut-il aider à détecter les violations de sécurité ou les accès non autorisés ?+
Oui, l'ID d'événement 4647 est précieux pour l'analyse de sécurité lorsqu'il est combiné avec des événements de connexion. Des schémas inhabituels comme des déconnexions à des heures étranges, des durées de session très courtes ou des déconnexions depuis des emplacements inattendus peuvent indiquer des comptes compromis ou un accès non autorisé. Corréler 4647 avec les événements 4624 (connexion) aide à identifier un comportement utilisateur suspect, des attaques automatisées ou des prises de contrôle de comptes. Cependant, cela devrait faire partie d'une stratégie de surveillance de sécurité complète, et ne pas être utilisé seul.
Comment puis-je calculer la durée de session utilisateur en utilisant l'ID d'événement 4647 ?+
Associez l'ID d'événement 4647 (déconnexion) avec l'ID d'événement correspondant 4624 (connexion) en utilisant le champ ID de connexion présent dans les deux événements. L'ID de connexion identifie de manière unique chaque session, vous permettant de corréler les heures de début et de fin. Soustrayez l'horodatage de connexion de l'horodatage de déconnexion pour obtenir la durée de la session. Cela est utile pour analyser la productivité des utilisateurs, détecter des sessions courtes anormales pouvant indiquer des attaques automatisées, ou identifier les utilisateurs qui oublient de se déconnecter.
Quelle information est contenue dans l'ID d'événement 4647 et comment puis-je l'extraire ?+
L'ID d'événement 4647 contient le Sujet (détails du compte utilisateur, y compris SID, nom d'utilisateur et domaine), l'ID de connexion (identifiant unique de session) et le Type de connexion (méthode utilisée pour la connexion initiale). Extrayez ces données en utilisant PowerShell en convertissant l'événement en XML et en analysant la section EventData. Les champs clés incluent SubjectUserName, SubjectDomainName, SubjectUserSid, SubjectLogonId et LogonType. Ces informations aident à identifier qui s'est déconnecté, quand, et à partir de quel type de session (interactive, distante, réseau, etc.).
Documentation

Références (2)

Emanuel DE ALMEIDA
Écrit par

Emanuel DE ALMEIDA

Senior IT Journalist & Cloud Architect

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Événements Windows associés

Windows Security Event Viewer displaying authentication events on a SOC monitoring dashboard
Event 4648
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 4648 – Microsoft-Windows-Security-Auditing : Tentative de connexion avec des identifiants explicites

L'ID d'événement 4648 se déclenche lorsqu'un utilisateur ou un processus tente une authentification en utilisant des informations d'identification explicites différentes de leur session de connexion actuelle, généralement observée avec RunAs, l'authentification réseau ou les opérations de compte de service.

18 mars12 min
Windows Event Viewer displaying security audit logs with Event ID 4634 logoff events on a SOC monitoring dashboard
Event 4634
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 4634 – Microsoft-Windows-Security-Auditing : Un compte a été déconnecté

L'ID d'événement 4634 enregistre lorsqu'un compte utilisateur se déconnecte d'un système Windows. Cet événement d'audit de sécurité suit les activités de déconnexion à des fins de conformité et de surveillance de la sécurité.

18 mars12 min
Windows Event Viewer Security log displaying Event ID 4723 password change audit entries on a cybersecurity monitoring dashboard
Event 4723
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 4723 – Microsoft-Windows-Security-Auditing : Tentative de changement de mot de passe du compte utilisateur

L'ID d'événement 4723 enregistre lorsqu'un utilisateur tente de changer le mot de passe d'un autre utilisateur. Cet événement d'audit de sécurité suit les opérations de réinitialisation de mot de passe administratives et aide à surveiller les modifications non autorisées de mots de passe dans les domaines Windows.

17 mars12 min
Security analyst monitoring Windows Event ID 4625 failed logon events in a cybersecurity operations center
Event 4625
Microsoft-Windows-Security-Auditing
Windows EventInformation

ID d'événement Windows 4625 – Microsoft-Windows-Security-Auditing : Échec de la connexion d'un compte

L'ID d'événement 4625 enregistre les tentatives de connexion échouées dans les journaux de sécurité Windows. Critique pour détecter les attaques par force brute, les problèmes d'identification et les tentatives d'accès non autorisées sur les comptes de domaine et locaux.

17 mars12 min

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...