ANAVEM
Languageen
IT administrator monitoring Windows power management events and Event ID 4946 on multiple displays in a professional data center environment
Event ID 4946InformationMicrosoft-Windows-Kernel-PowerWindows

ID d'événement Windows 4946 – Microsoft-Windows-Kernel-Power : Transition de l'état d'alimentation du système

L'ID d'événement 4946 indique une transition de l'état d'alimentation du système, généralement lorsque Windows entre ou sort du mode veille, hibernation ou d'autres états de gestion de l'alimentation. Critique pour diagnostiquer les problèmes liés à l'alimentation.

Emanuel DE ALMEIDAEmanuel DE ALMEIDA
18 mars 202612 min de lecture 0
Event ID 4946Microsoft-Windows-Kernel-Power 5 méthodes 12 min
Référence événement

Signification de cet événement

L'ID d'événement Windows 4946 représente un composant fondamental du système de journalisation de la gestion de l'alimentation de Windows. Généré par le fournisseur Microsoft-Windows-Kernel-Power, cet événement capture des informations détaillées sur les changements d'état d'alimentation du système, offrant aux administrateurs une visibilité sur la manière dont leurs systèmes gèrent les transitions d'alimentation.

La structure de l'événement comprend plusieurs points de données clés : l'état d'alimentation source (tel que S0 pour pleinement opérationnel, S3 pour veille, ou S4 pour hibernation), l'état d'alimentation cible, la raison de la transition (initiée par l'utilisateur, politique système, ou automatique), et les informations de synchronisation. Ces données s'avèrent inestimables lors du diagnostic de problèmes liés à l'alimentation ou de l'optimisation de la consommation d'énergie du système.

Dans Windows 11 et Server 2025, Microsoft a amélioré la journalisation de la gestion de l'alimentation pour inclure un contexte supplémentaire sur les états de veille moderne et les scénarios de veille connectée. L'événement fournit désormais des informations plus granulaires sur les états d'alimentation partiels et les transitions d'alimentation spécifiques aux appareils, facilitant l'identification des composants empêchant les états de veille appropriés ou provoquant des réveils inattendus.

L'événement se déclenche dans les deux sens des transitions d'alimentation - lors de l'entrée dans des états de faible consommation et lors de la reprise de l'opération complète. Cette journalisation bidirectionnelle permet aux administrateurs de corréler les cycles de veille/réveil avec les problèmes de performance du système, le comportement des applications et les problèmes d'expérience utilisateur. Les informations de synchronisation aident à identifier les opérations de reprise lentes ou les tentatives de veille échouées qui pourraient impacter la productivité.

S'applique à

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

Causes possibles

  • Système entrant en mode veille (S3) par action de l'utilisateur ou politique d'alimentation
  • Système passant en hibernation (S4) en raison de batterie faible ou de délai configuré
  • Activation de la veille hybride combinant les fonctionnalités de veille et d'hibernation
  • Changements d'état de veille moderne dans Windows 11 et matériel compatible
  • Système reprenant de tout état de faible puissance à une opération active
  • Transitions de veille connectée sur tablettes et ultrabooks
  • Appui sur le bouton d'alimentation déclenchant l'action d'alimentation configurée
  • Changements automatiques d'état d'alimentation dus aux politiques de gestion de l'alimentation
  • Événements Wake-on-LAN provoquant la reprise du système de la veille
  • Tâche planifiée ou maintenance système déclenchant des événements de réveil
Méthodes de résolution

Étapes de dépannage

01

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

Commencez par examiner les détails spécifiques de la transition de puissance dans le Visualiseur d'événements pour comprendre ce qui a déclenché le changement d'état.

  1. Ouvrez Visualiseur d'événements en appuyant sur Win + R, en tapant eventvwr.msc, et en appuyant sur Entrée
  2. Accédez à Journaux WindowsSystème
  3. Filtrez le journal en cliquant sur Filtrer le journal actuel dans le volet Actions
  4. Entrez 4946 dans le champ ID d'événement et cliquez sur OK
  5. Double-cliquez sur les entrées récentes de l'ID d'événement 4946 pour voir des informations détaillées
  6. Examinez l'onglet Général pour les détails de la transition d'état de puissance, y compris l'état source, l'état cible et la raison de la transition
  7. Vérifiez l'onglet Détails pour des données XML supplémentaires contenant des informations de synchronisation et le contexte système

Utilisez PowerShell pour interroger plusieurs événements efficacement :

Get-WinEvent -FilterHashtable @{LogName='System'; Id=4946} -MaxEvents 20 | Format-Table TimeCreated, Id, LevelDisplayName, Message -Wrap
Astuce pro : Recherchez des motifs dans les temps de transition et les raisons pour identifier si les changements d'état de puissance sont initiés par l'utilisateur, dictés par des politiques, ou causés par des facteurs externes.
02

Analyser la configuration de gestion de l'alimentation

Examinez les paramètres actuels de gestion de l'alimentation pour comprendre pourquoi des transitions spécifiques se produisent.

  1. Ouvrez Invite de commandes en tant qu'administrateur
  2. Exécutez la commande suivante pour afficher la configuration actuelle de l'alimentation :
powercfg /query
  1. Examinez les paramètres de veille et d'hibernation avec :
powercfg /availablesleepstates
powercfg /sleepstudy
  1. Vérifiez quels appareils peuvent réveiller le système :
powercfg /devicequery wake_armed
  1. Générez un rapport détaillé sur l'efficacité énergétique :
powercfg /energy /output C:\PowerReport.html
  1. Pour les systèmes Windows 11, vérifiez la capacité de Modern Standby :
powercfg /systempowerreport
  1. Examinez les rapports générés pour identifier les problèmes de gestion de l'alimentation ou les sources de réveil inattendues
Avertissement : Les modifications des paramètres de gestion de l'alimentation peuvent affecter la stabilité du système et l'expérience utilisateur. Testez les modifications dans un environnement contrôlé d'abord.
03

Corréler avec les performances du système et les événements d'application

Recoupez l'ID d'événement 4946 avec d'autres événements système pour identifier la cause racine des problèmes d'état d'alimentation.

  1. Utilisez PowerShell pour recueillir les événements d'alimentation liés à partir de plusieurs sources :
$StartTime = (Get-Date).AddDays(-7)
$PowerEvents = Get-WinEvent -FilterHashtable @{
    LogName='System'
    Id=1,6,42,4946,4947
    StartTime=$StartTime
} | Sort-Object TimeCreated

$PowerEvents | Format-Table TimeCreated, Id, ProviderName, LevelDisplayName, Message -Wrap
  1. Vérifiez les événements de réveil liés aux applications dans le journal Application :
Get-WinEvent -FilterHashtable @{LogName='Application'; StartTime=$StartTime} | Where-Object {$_.Message -like '*wake*' -or $_.Message -like '*power*'} | Format-Table TimeCreated, ProviderName, Message -Wrap
  1. Examinez les informations sur la source de réveil en utilisant :
powercfg /waketimers
powercfg /requests
  1. Pour une analyse détaillée de la source de réveil, vérifiez le journal des événements PowerShell :
Get-WinEvent -LogName 'Microsoft-Windows-Power-Troubleshooter/Operational' -MaxEvents 50 | Format-Table TimeCreated, Id, Message -Wrap
  1. Créez un script de corrélation de chronologie pour faire correspondre les événements d'alimentation avec l'activité système :
$Events = Get-WinEvent -FilterHashtable @{LogName='System'; Id=4946; StartTime=(Get-Date).AddHours(-24)}
foreach ($Event in $Events) {
    $EventTime = $Event.TimeCreated
    Write-Host "Power Event at $EventTime"
    $RelatedEvents = Get-WinEvent -FilterHashtable @{LogName='System'; StartTime=$EventTime.AddMinutes(-5); EndTime=$EventTime.AddMinutes(5)} | Where-Object {$_.Id -ne 4946}
    $RelatedEvents | Format-Table Id, TimeCreated, Message -Wrap
}
04

Surveillance avancée de l'état d'alimentation et analyse du registre

Implémentez une surveillance complète et examinez les paramètres du registre qui contrôlent le comportement de gestion de l'alimentation.

  1. Activez la journalisation avancée de la gestion de l'alimentation en modifiant les paramètres du registre :
$RegPath = 'HKLM:\SYSTEM\CurrentControlSet\Control\Power'
Set-ItemProperty -Path $RegPath -Name 'EventProcessorEnabled' -Value 1 -Type DWord
Set-ItemProperty -Path $RegPath -Name 'CsEnabled' -Value 1 -Type DWord
  1. Vérifiez les clés de registre critiques de gestion de l'alimentation :
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Power' | Format-List
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Session Manager\Power' | Format-List
  1. Créez un script de surveillance complète des événements d'alimentation :
Register-WmiEvent -Query "SELECT * FROM Win32_PowerManagementEvent" -Action {
    $Event = $Event.SourceEventArgs.NewEvent
    $LogEntry = "$(Get-Date): Power Management Event - Type: $($Event.EventType)"
    Add-Content -Path 'C:\PowerMonitoring.log' -Value $LogEntry
}

# Surveillez pendant 24 heures
Start-Sleep -Seconds 86400
Get-EventSubscriber | Unregister-Event
  1. Analysez la configuration de Modern Standby sur Windows 11 :
$ModernStandby = Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\Power' -Name 'PlatformAoAcOverride' -ErrorAction SilentlyContinue
if ($ModernStandby) {
    Write-Host "Modern Standby Status: $($ModernStandby.PlatformAoAcOverride)"
} else {
    Write-Host "Traditional S3 Sleep Mode"
}
  1. Générez un rapport détaillé de transition d'alimentation :
$PowerEvents = Get-WinEvent -FilterHashtable @{LogName='System'; Id=4946} -MaxEvents 100
$Report = $PowerEvents | ForEach-Object {
    [PSCustomObject]@{
        Time = $_.TimeCreated
        Message = $_.Message
        Level = $_.LevelDisplayName
        ProcessId = $_.ProcessId
        ThreadId = $_.ThreadId
    }
}
$Report | Export-Csv -Path 'C:\PowerTransitionReport.csv' -NoTypeInformation
Astuce pro : Utilisez Windows Performance Toolkit (WPT) pour une analyse avancée des états d'alimentation dans les environnements d'entreprise où une traçabilité détaillée est requise.
05

Dépannage de la gestion de l'alimentation au niveau de l'entreprise

Déployer une surveillance et un dépannage complets de la gestion de l'énergie pour les environnements d'entreprise.

  1. Créer un script PowerShell déployable par stratégie de groupe pour la surveillance de l'énergie à l'échelle de l'organisation :
# PowerManagementMonitor.ps1
$LogPath = "C:\Logs\PowerManagement_$(Get-Date -Format 'yyyyMMdd').log"
$null = New-Item -Path (Split-Path $LogPath) -ItemType Directory -Force -ErrorAction SilentlyContinue

function Write-PowerLog {
    param($Message)
    $Timestamp = Get-Date -Format 'yyyy-MM-dd HH:mm:ss'
    "$Timestamp - $Message" | Add-Content -Path $LogPath
}

# Surveiller les événements d'alimentation
$Action = {
    $Event = $Event.SourceEventArgs.NewEvent
    Write-PowerLog "Event ID 4946: Transition d'état d'alimentation détectée"
    
    # Collecter le contexte système
    $SystemInfo = @{
        ComputerName = $env:COMPUTERNAME
        UserName = $env:USERNAME
        PowerScheme = (powercfg /getactivescheme).Split('(')[1].Split(')')[0]
        BatteryStatus = (Get-WmiObject -Class Win32_Battery | Select-Object -ExpandProperty BatteryStatus -ErrorAction SilentlyContinue)
    }
    
    Write-PowerLog "Contexte système: $($SystemInfo | ConvertTo-Json -Compress)"
}

Register-WmiEvent -Query "SELECT * FROM Win32_PowerManagementEvent" -Action $Action
  1. Mettre en œuvre la journalisation centralisée à l'aide de Windows Event Forwarding :
wecutil cs PowerManagementSubscription.xml
  1. Créer un fichier de configuration d'abonnement (PowerManagementSubscription.xml) :
<Subscription xmlns="http://schemas.microsoft.com/2006/03/windows/events/subscription">
    <SubscriptionId>PowerManagementEvents</SubscriptionId>
    <Description>Transférer les événements de gestion de l'énergie</Description>
    <Query>
        <![CDATA[
        <QueryList>
            <Query Id="0">
                <Select Path="System">*[System[EventID=4946]]</Select>
            </Query>
        </QueryList>
        ]]>
    </Query>
</Subscription>
  1. Déployer une analyse automatisée de l'état de l'alimentation à l'aide du Planificateur de tâches :
$TaskAction = New-ScheduledTaskAction -Execute 'PowerShell.exe' -Argument '-File C:\Scripts\PowerAnalysis.ps1'
$TaskTrigger = New-ScheduledTaskTrigger -Daily -At '06:00AM'
$TaskSettings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries
Register-ScheduledTask -TaskName 'PowerManagementAnalysis' -Action $TaskAction -Trigger $TaskTrigger -Settings $TaskSettings -User 'SYSTEM'
  1. Générer des rapports sommaires exécutifs pour la conformité de la gestion de l'énergie :
# PowerManagementReport.ps1
$StartDate = (Get-Date).AddDays(-30)
$PowerEvents = Get-WinEvent -FilterHashtable @{LogName='System'; Id=4946; StartTime=$StartDate}

$Summary = @{
    TotalTransitions = $PowerEvents.Count
    AveragePerDay = [math]::Round($PowerEvents.Count / 30, 2)
    MostActiveHour = ($PowerEvents | Group-Object {$_.TimeCreated.Hour} | Sort-Object Count -Descending | Select-Object -First 1).Name
    SystemUptime = (Get-CimInstance -ClassName Win32_OperatingSystem).LastBootUpTime
}

$Summary | ConvertTo-Json | Out-File 'C:\Reports\PowerManagementSummary.json'
Avertissement : Les solutions de surveillance d'entreprise doivent être testées minutieusement avant le déploiement pour éviter un impact sur les performances des systèmes de production.

Aperçu

L'ID d'événement 4946 de la source Microsoft-Windows-Kernel-Power se déclenche lors des transitions d'état d'alimentation du système dans les environnements Windows. Cet événement se journalise lorsque le système change d'état d'alimentation, y compris les transitions vers le mode veille (S3), l'hibernation (S4), la veille hybride, ou lors de la reprise de ces états. L'événement fournit des informations cruciales sur les opérations de gestion de l'alimentation et est essentiel pour le dépannage des problèmes liés à l'alimentation dans les systèmes Windows modernes.

Cet événement apparaît dans le journal Système et contient des informations détaillées sur la transition d'alimentation, y compris les états d'alimentation précédents et nouveaux, la raison de la transition et les informations de synchronisation. Les administrateurs système s'appuient sur cet événement pour suivre le comportement de gestion de l'alimentation, diagnostiquer les arrêts inattendus, enquêter sur les problèmes de réveil de veille et surveiller l'efficacité énergétique dans les environnements d'entreprise.

L'événement devient particulièrement important lors du dépannage des systèmes qui ne parviennent pas à entrer correctement en mode veille, connaissent des événements de réveil inattendus ou ont des problèmes de reprise à partir des modes d'économie d'énergie. Comprendre cet événement aide à identifier les problèmes de compatibilité matérielle, les problèmes de pilote et les erreurs de configuration qui affectent la gestion de l'alimentation du système.

Questions Fréquentes

Que signifie l'ID d'événement 4946 et quand apparaît-il ?+
L'ID d'événement 4946 indique une transition d'état d'alimentation du système dans Windows. Il apparaît chaque fois que le système change d'état d'alimentation, comme l'entrée en mode veille (S3), en hibernation (S4), en veille hybride ou en états de veille moderne. L'événement se déclenche également lors de la reprise de ces états de faible consommation vers un fonctionnement complet. Cet événement est généré par le fournisseur Microsoft-Windows-Kernel-Power et contient des informations détaillées sur les états d'alimentation source et cible, la raison de la transition et les données de synchronisation.
Comment puis-je déterminer ce qui a causé le réveil de mon système à partir du mode veille en utilisant l'ID d'événement 4946 ?+
Bien que l'ID d'événement 4946 montre la transition de l'état d'alimentation, vous devez le corréler avec d'autres événements et utiliser des outils supplémentaires pour identifier les sources de réveil. Exécutez 'powercfg /waketimers' pour voir les minuteries de réveil actives et 'powercfg /devicequery wake_armed' pour lister les périphériques pouvant réveiller le système. Vérifiez les événements immédiatement avant l'événement de réveil 4946 dans le Visualiseur d'événements, en recherchant particulièrement les événements de l'adaptateur réseau, les événements des périphériques USB ou les activités des tâches planifiées. La commande PowerShell 'Get-WinEvent -LogName Microsoft-Windows-Power-Troubleshooter/Operational' peut fournir des détails supplémentaires sur les sources de réveil.
L'ID d'événement 4946 est-il normal ou indique-t-il un problème avec mon système ?+
L'ID d'événement 4946 est tout à fait normal et indique le bon fonctionnement de la gestion de l'alimentation. C'est un événement informatif qui enregistre le comportement attendu du système lors de l'entrée ou de la sortie des états d'économie d'énergie. Cependant, si vous constatez des transitions inattendues fréquentes, des transitions qui échouent à se terminer correctement, ou des changements d'état d'alimentation qui ne correspondent pas à vos politiques de gestion de l'alimentation, cela pourrait indiquer des problèmes matériels, des problèmes de pilotes ou des erreurs de configuration. L'essentiel est d'analyser le modèle et le contexte de ces événements plutôt que leur simple présence.
Comment dépanner les systèmes qui affichent l'ID d'événement 4946 mais ne parviennent pas à entrer correctement en mode veille ?+
Commencez par exécuter 'powercfg /availablesleepstates' pour vérifier quels états de veille votre matériel prend en charge. Utilisez 'powercfg /requests' pour identifier les applications ou services empêchant la mise en veille. Vérifiez les problèmes de pilote en exécutant 'powercfg /energy' pour générer un rapport d'efficacité énergétique. Dans le Visualiseur d'événements, recherchez les événements d'erreur se produisant en même temps que l'ID d'événement 4946. Les causes courantes incluent les adaptateurs réseau configurés pour réveiller le système, les périphériques USB avec des capacités de réveil, ou les applications maintenant des demandes d'alimentation. Mettez à jour les pilotes, en particulier pour les contrôleurs réseau et USB, et examinez les paramètres de gestion de l'alimentation dans le Gestionnaire de périphériques.
Quelle est la différence entre l'ID d'événement 4946 dans Windows 10 et Windows 11 concernant le Modern Standby ?+
Dans Windows 11, l'ID d'événement 4946 inclut des informations améliorées sur les états de Modern Standby (Connected Standby), qui n'étaient pas entièrement détaillés dans les versions antérieures de Windows 10. Les systèmes Windows 11 avec la capacité Modern Standby affichent des informations plus granulaires sur l'état de l'alimentation, y compris des états de réveil partiels où le système maintient la connectivité réseau en mode basse consommation. Les données d'événement dans Windows 11 incluent un contexte supplémentaire sur les composants qui restent actifs pendant la veille et offrent une meilleure visibilité sur les scénarios de veille connectée. Vous pouvez vérifier si votre système prend en charge Modern Standby en examinant la clé de registre 'HKLM\SYSTEM\CurrentControlSet\Control\Power\PlatformAoAcOverride' ou en exécutant 'powercfg /a' pour voir les états de veille disponibles.
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 thermal monitoring dashboard showing temperature data and system event logs in a professional data center environment
Event 8300
Microsoft-Windows-Kernel-Power
Windows EventInformation

ID d'événement Windows 8300 – Microsoft-Windows-Kernel-Power : Température de la zone thermique du système

L'ID d'événement 8300 indique des changements de température de zone thermique dans les systèmes Windows. Cet événement informatif suit les seuils de température du CPU et du système pour la gestion thermique et la protection du matériel.

18 mars12 min
Windows laptop displaying Event Viewer with power management logs and glowing power indicator
Event 105
Microsoft-Windows-Kernel-Power
Windows EventInformation

ID d'événement Windows 105 – Microsoft-Windows-Kernel-Power : Transition de l'état d'alimentation du système

L'ID d'événement 105 de Microsoft-Windows-Kernel-Power indique les transitions d'état d'alimentation du système, généralement lorsque Windows entre ou sort des états de veille, d'hibernation ou d'arrêt. Critique pour le dépannage de la gestion de l'alimentation.

18 mars12 min
Windows Event Viewer displaying power management events and system power state transitions on a monitoring dashboard
Event 102
Microsoft-Windows-Kernel-Power
Windows EventInformation

ID d'événement Windows 102 – Microsoft-Windows-Kernel-Power : Transition de l'état d'alimentation du système

L'ID d'événement 102 indique une transition de l'état d'alimentation du système, généralement lorsque Windows entre ou sort des états de veille, d'hibernation ou d'arrêt. Critique pour diagnostiquer les problèmes de gestion de l'alimentation.

18 mars9 min
Windows Event Viewer displaying power management logs on a server monitoring system
Event 32022
Microsoft-Windows-Kernel-Power
Windows EventInformation

ID d'événement Windows 32022 – Microsoft-Windows-Kernel-Power : Transition de l'état d'alimentation du système

L'ID d'événement 32022 indique une transition de l'état d'alimentation du système initiée par le sous-système de gestion de l'alimentation du noyau Windows, se produisant généralement lors des opérations de veille, d'hibernation ou de réveil.

18 mars9 min

Discussion

Partagez vos réflexions et analyses

Vous devez être connecté pour commenter.

Chargement des commentaires...