Technical guide
How to Use Powercfg for Windows Sleep and Power Diagnostics
Use Windows powercfg to identify supported sleep states, power requests, wake sources, wake timers, and generate sleep and power diagnostic reports.
On this page
- Start by identifying the sleep model Windows actually exposes
- Use /requests when the PC refuses to go to sleep
- Use /lastwake and /waketimers for an unwanted wake
- Use device queries when the wake evidence points to hardware
- Generate a sleep-transition report when one command is not enough
- Use SleepStudy only when the platform supports Modern Standby
- Match the command to the symptom instead of running every switch
Start by identifying the sleep model Windows actually exposes
Open Windows Terminal or Command Prompt as administrator when a command requires elevation, then run `powercfg /availablesleepstates` (or `powercfg /a`). Microsoft documents this command as reporting the sleep states available on the current system and reasons unavailable states cannot be used.
This matters because a Modern Standby PC and a traditional S3-sleep PC do not follow identical diagnostic paths. Microsoft notes that systems supporting Modern Standby use S0 low-power idle rather than the traditional S1-S3 standby states. Record the output before changing firmware or power settings so later tests are tied to the machine's actual sleep model.
| Question | Command | What the result tells you |
|---|---|---|
| Which sleep states can this PC use? | powercfg /a | Available system sleep states and reasons some states are unavailable |
| What is currently preventing sleep or display idle? | powercfg /requests | Application and driver power requests |
| What woke the PC last time? | powercfg /lastwake | Information about the most recent recorded wake transition |
| Are timers scheduled to wake it? | powercfg /waketimers | Active wake timers |
| What happened across recent sleep transitions? | powercfg /systemsleepdiagnostics | HTML/XML diagnostic report of recent user-absence and sleep intervals |
| How did Modern Standby sessions behave? | powercfg /sleepstudy | Modern Standby session activity and power information on supported systems |
Use /requests when the PC refuses to go to sleep
Run `powercfg /requests` when the symptom is that Windows stays awake rather than sleeping and waking later. Microsoft defines this command as enumerating application and driver Power Requests. Those requests can identify software or drivers asking Windows to keep the display or system available.
Do not jump directly to `powercfg /requestsoverride`. An active request is evidence about the current power policy interaction, not proof that the requester is faulty. Identify the process, service or driver, reproduce the symptom, and check its legitimate workload before overriding behavior that may be intentional.
Use /lastwake and /waketimers for an unwanted wake
Immediately after an unexpected resume, run `powercfg /lastwake`. Microsoft documents it as reporting information about what woke the system from the last sleep transition. Capture the output before deliberately sleeping and waking the PC again, because a later transition can replace the evidence you wanted.
Then run `powercfg /waketimers`. This enumerates active wake timers, which are different from requests that prevent sleep in the first place. A listed timer is most useful when its owner and scheduled time correlate with the unwanted wake; do not disable unrelated scheduled tasks merely because they appear in a list.
Use device queries when the wake evidence points to hardware
`powercfg /devicequery wake_armed` lists devices currently configured to wake the system. `powercfg /devicequery wake_programmable` lists devices whose wake behavior can be configured through Windows. These lists describe capability or configuration; they do not by themselves prove which device caused a particular wake.
When `/lastwake` repeatedly identifies a specific device, a narrowly scoped wake-disable test can be useful. Preserve the exact device name and restore wanted wake functionality afterward. Avoid blanket-disabling keyboards, mice, network adapters and USB devices, because that destroys useful wake paths without establishing the original cause.
Generate a sleep-transition report when one command is not enough
For a broader history, Microsoft documents `powercfg /systemsleepdiagnostics` as generating an HTML report covering recent intervals when the user was absent and whether the system entered sleep. The command requires an elevated prompt. You can choose an output path and use `/duration days` when you need a wider or narrower analysis window supported by the command.
Microsoft also provides `powercfg /systempowerreport` (or `/spr`) for recent system power transitions. These reports are useful when the symptom spans multiple transitions and a single `/lastwake` result cannot describe the timeline. Preserve the report before making several configuration changes so you still have a baseline.
Use SleepStudy only when the platform supports Modern Standby
On a Modern Standby-capable system, `powercfg /sleepstudy` creates an HTML report describing standby sessions, including active and idle time and power-consumption information. Microsoft positions SleepStudy as a first-level way to investigate activity occurring during Modern Standby without generating diagnostic activity that would itself disturb the state being measured.
Do not treat SleepStudy as a universal sleep report for every desktop. First check `powercfg /a`; if the machine uses traditional S3 rather than Modern Standby, use the diagnostics appropriate to that sleep model. Likewise, a SleepStudy activity entry is evidence to investigate, not automatic proof that an application or device is defective.
Match the command to the symptom instead of running every switch
If the PC never sleeps, start with `/requests`. If it sleeps and wakes unexpectedly, start with `/lastwake` and `/waketimers`. If the issue involves repeated transitions across hours or days, generate a diagnostic report. If the machine uses Modern Standby and the concern is standby activity or battery drain, SleepStudy is the more specific report.
Powercfg output should narrow the next step rather than become a diagnosis by itself. Correlate its evidence with Event Viewer, the exact device or software involved, firmware documentation and the timing of the symptom. That produces a reproducible diagnostic path without turning generic power settings into permanent performance tweaks.
Sources
Primary and technical sources
Technical details can vary by exact model, firmware, and platform. These are the sources used for the factual claims in this article.
01 Microsoft Learn
Powercfg command-line options02 Microsoft Learn
System power states03 Microsoft Learn
Modern Standby SleepStudy
Related
Continue from here
Useful next steps selected from the same technical reference and publication system.
Technical guide
Windows Page File Explained: Virtual Memory and Commit Limit
Understand what the Windows page file does, how it extends the system commit limit, how paging differs from RAM use, and why crash dumps can depend on it.
Tool
DDR Memory Latency Calculator
Convert DDR data rate and CAS latency cycles into CAS timing in nanoseconds.
Technical guide
How to Use System Restore in Windows 11
Use System Restore in Windows 11 from the desktop or Windows Recovery Environment, create restore points, check affected programs, and understand what restoration changes.
Tool
DDR Memory Bandwidth Calculator
Calculate theoretical peak DDR memory bandwidth from transfer rate, bus width per channel, and active channel count.