Complete Guide: Generate Efficiency Reports with powercfg /energy

Last update: 16/10/2025
Author Isaac
  • Powercfg /energy analyzes the system and creates an HTML or XML report with errors, warnings, and efficiency information.
  • Complement the diagnosis with /batteryreport, /sleepstudy and /systempowerreport for a global view.
  • Control devices and timers that wake up the PC and adjust plans precisely (AC/DC, PPM, overlays).

Power Report with PowerCFG

When your laptop battery life is shorter than expected or your desktop computer is consuming more power than usual, it's a good idea to run an "energy checkup." In Windows , the key tool is powercfg, and its /energy option scans the system to uncover efficiency problems and generate a report. In this guide, you'll learn how to use it thoroughly, interpret its options, and supplement the diagnosis with other useful reports. The goal is for you to obtain clear reports to improve battery life, power consumption, and sleep behavior, and to understand how to enable or disable battery saver mode in Windows 11.

In addition to /energy, powercfg includes dozens of switches for listing power plans, adjusting AC/DC values, hibernation, devices that wake the computer, and more. We'll integrate this entire arsenal with best practices and real-world tips and tricks , always using straightforward language and providing ready-to-copy examples.

What is powercfg and why is it so useful?

Powercfg is a command -line utility included in Windows that allows you to list and configure power policies, manage sleep and hibernation states, control device behavior, and generate diagnostic reports. The /energy option analyzes the system and creates an HTML file with the energy efficiency findings.

The analysis detects several categories of issues: from inefficient use of USB selective suspend to excessive CPU usage, high timer resolutions, inefficient policies, and significant battery degradation. The report categorizes the findings into errors, warnings, and information to help you prioritize what to fix.

How to run powercfg and basic syntax

Open a Command Prompt or PowerShell window as administrator (right-click, Run as administrator). The general syntax is: powercfg /option , where /? displays help for that specific option.

powercfg /opcion 
powercfg /?   (ayuda general)

Keep in mind that some reports are saved in the current directory from which you run the command. If you see C:\> in the console, the HTML for /energy or /batteryreport will be generated there unless you specify /output.

Generate efficiency reports with powercfg /energy

The `/energy` command analyzes the system for a period of time (60 seconds by default) and produces an HTML report detailing any problems found. It's best to run the computer while it's idle, with no apps open, to measure typical inactivity conditions. This report is the quickest way to determine why a laptop is using more battery than expected.

powercfg /energy
powercfg /energy /output "informe-energia.html" /duration 120
powercfg /energy /xml

Key parameters: /output (path and name of the output file), /xml (to export to XML), /duration (seconds), and /trace (logs a trace without analysis; useful for digging deeper with /d folder). With /trace you will obtain raw behavior data that you can then review with diagnostic tools.

powercfg /energy /trace /d C:\\trazas /duration 90

What if you run `powercfg /energy` and it seems to do nothing? Sometimes the console displays "Enabling tracking for 60 seconds" and returns to the prompt without opening a report. First, check the current folder (C:\) or specify `/output` with a safe path, and confirm that you are running as administrator . If the computer is not idle or there are no ETW tracking blocks, repeat the scan after closing any applications that might be interfering.

Battery report with powercfg /batteryreport

This HTML report summarizes the battery's status, cycles, design capacity vs. current capacity, and estimated lifespan. It is very useful for assessing wear over time and making replacement decisions. It can also be generated in XML format and the time window can be limited to specific days.

powercfg /batteryreport
powercfg /batteryreport /output "batteryreport.html"
powercfg /batteryreport /duration 7
powercfg /batteryreport /output "batteryreport.xml" /xml

Reading its tables and graphs makes it clear how much the battery has deteriorated and whether recent consumption is abnormal. Combining /batteryreport with /energy will give you a complete picture of the "what" and the "why . "

Sleepstudy, sleep diagnostics and energy transitions

For laptops with Modern Standby, `/sleepstudy` summarizes how the computer sleeps over the past few days, including consumption metrics and active periods. This data can be exported as HTML or XML and converted to HTML using `/transformxml`.

powercfg /sleepstudy
powercfg /sleepstudy /output "sleepstudy.html"
powercfg /sleepstudy /duration 7
powercfg /sleepstudy /transformxml "sleepstudy.xml" /output "sleepstudy.html"

The `/systemsleepdiagnostics` command generates an HTML report detailing user absence intervals and whether the system successfully went to sleep. It requires an elevated console. It includes `/output`, `/xml`, `/duration`, and `/transformxml` for formatting and time periods.

powercfg /systemsleepdiagnostics
powercfg /systemsleepdiagnostics /output "system-sleep-diagnostics.html"
powercfg /systemsleepdiagnostics /output "system-sleep-diagnostics.xml" /xml
powercfg /systemsleepdiagnostics /transformxml "system-sleep-diagnostics.xml"

For a summary of system power transitions (including Connected Standby efficiency), use /systempowerreport (also accessible as /spr). It's perfect for understanding the history of power-ons, sleeps, and wake-ups.

powercfg /systempowerreport
powercfg /systempowerreport /output "system-power-report.html"
powercfg /systempowerreport /output "system-power-report.xml" /xml
powercfg /systempowerreport /duration 3
powercfg /systempowerreport /transformxml "system-power-report.xml"

Plan control: list, activate, duplicate, rename, delete

Powercfg lets you manage power plans. Start by listing all available plans and activating the one you want. You can also duplicate a plan to customize it without losing the original.

powercfg /list
powercfg /getactivescheme
powercfg /setactive GUID-DEL-PLAN
powercfg /duplicatescheme GUID-ORIGEN
powercfg /changename GUID "Nombre nuevo"

If you need to export or import plans (for example, between teams), use /export and /import. This creates/consumes .pow files with the complete configuration of a scheme.

powercfg /export C:\\mis-planes\\equilibrado.pow GUID-DEL-PLAN
powercfg /import C:\\mis-planes\\equilibrado.pow

You can also delete a plan by specifying its GUID. Note: you cannot delete the active scheme; you must delete another one first. If you want to clean up, make sure your list is up to date with `/list`.

powercfg /delete GUID-DEL-PLAN

Fine-tuning power settings: /change, AC/DC, and advanced settings

The /change switch modifies simple values ​​of the active plan (screen, disk, standby, or hibernation timeouts in minutes). It's a quick way to adjust basic settings without delving into GUIDs.

powercfg /change monitor-timeout-ac 5

To target advanced configurations, first identify the GUID of the plan, subgroup, and configuration. Using `/setacvalueindex` and `/setdcvalueindex` will set different values ​​for AC or battery (DC) power. The list of possible values ​​and GUIDs is obtained with `/query`.

powercfg /query
powercfg /query GUID_PLAN GUID_SUBGRUPO
powercfg /setacvalueindex GUID_PLAN GUID_SUBGRUPO GUID_CONFIG VALOR
powercfg /setdcvalueindex GUID_PLAN GUID_SUBGRUPO GUID_CONFIG VALOR

Example (illustrative format with actual system GUIDs): Set one index in CA and another in CC for the same configuration with precision.

powercfg /setacvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 
  238c9fa8-0aad-41ed-83f4-97be242c8f20 29f6c1db-86da-48c5-9fdb-f2b67b1f44da 0
powercfg /setdcvalueindex 381b4222-f694-41f0-9685-ff5bb260df2e 
  238c9fa8-0aad-41ed-83f4-97be242c8f20 29f6c1db-86da-48c5-9fdb-f2b67b1f44da 300

Hibernation and sleep states

Hibernation can be enabled or disabled, and you can adjust the hiberfile size and choose the type (reduced or full). The reduced option only supports hiberboot. If you disable hibernation, the fast startup option will also disappear.

powercfg /hibernate on
powercfg /hibernate off
powercfg /hibernate /size 100
powercfg /hibernate /type reduced

To find out which sleep states your computer supports, use `/availablesleepstates (/A)`. The command attempts to explain why some states might not be available.

powercfg /availablesleepstates

Devices and timers that wake up the computer

Check which devices can wake the system or are armed to do so using `/devicequery` and its flags. This is very useful for detecting unexpected wake-ups during the night and for identifying protocols like Wake-on-LAN in Windows 11.

  Configure keyboard key repeat time in Linux

Enables or disables the ability to wake a specific device by entering its name exactly as it appears in the query. Ideal for preventing a USB mouse from waking the PC with a light touch.

powercfg /deviceenableawake "Microsoft USB IntelliMouse Optical"
powercfg /devicedisablewake "Microsoft USB IntelliMouse Optical"

Additionally, `/waketimers` lists timers that might wake the computer from sleep, while `/lastwake` shows what caused the last wake-up. With these two levers, the "mystery" of unexpected power-ups is usually solved.

powercfg /waketimers
powercfg /lastwake

Energy demands that prevent sleep

If the PC doesn't go into sleep mode, there may be active requests from applications, services, or drivers. Review them with `/requests` and, if necessary, set exceptions with `/requestsoverride`. Overrides can be applied to `display`, `system`, or `awaymode`.

powercfg /requests
powercfg /requestsoverride process wmplayer.exe display system

USB Selective Suspend and ETW: Truly Efficient

USB selective suspend allows devices to be powered down when idle to save energy and then reactivated when needed. If properly implemented in drivers and devices, the savings are significant, and the processor enters low-power states. When something is amiss, idle power consumption spikes, and the `/energy` command usually flags this.

To thoroughly investigate USB behavior, you can use ETW (Event Tracing for Windows) and correlate activity/sleep events. Powercfg /energy already detects inefficient use of selective suspend, but detailed tracing (/energy /trace) can help you pinpoint the specific cause. Always verify that USB drivers and devices support selective suspend correctly , and if you encounter problems, check how to fix the power state controller failure.

Aliases, security, and detailed configuration reading

Using `/aliases` will give you aliases and their corresponding GUIDs; these serve as shortcuts in other commands. It's a more convenient way to refer to subgroups like `SUB_PROCESSOR` or `SUB_GRAPHICS`.

powercfg /aliases

To inspect a specific plan or subgroup, `/query` displays the current values; if you omit parameters, you'll see the active plan's configuration. This is the first step before precisely adjusting AC/DC indices.

powercfg /query
powercfg /query GUID_PLAN GUID_SUBGRUPO

In managed environments, you can query or set security descriptors associated with plans, configurations, or actions. Use `/getsecuritydescriptor` and `/setsecuritydescriptor` with GUIDs or with actions like `ActionSetActive`. The value is expressed in SDDL; first, get an example with `/getsecuritydescriptor`.

powercfg /getsecuritydescriptor 381b4222-f694-41f0-9685-ff5bb260df2e
powercfg /getsecuritydescriptor ActionSetActive
powercfg /setsecuritydescriptor 381b4222-f694-41f0-9685-ff5bb260df2e O:BAG:SYD:P(...)
powercfg /setsecuritydescriptor ActionSetActive O:BAG:SYD:P(...)

Overlay schemes and PPM profiles

Overlay schemes allow you to customize only settings that affect the performance/power saving balance, primarily in processor (SUB_PROCESSOR) and graphics (SUB_GRAPHICS) subgroups. Writing outside these subgroups within an overlay will return an error. Reading and writing overlays is integrated with the same /q, /setacvalueindex, and /setdcvalueindex commands using aliases.

powercfg /q ALIAS_OVERLAY SUBGRUPO CONFIG
powercfg /setacvalueindex ALIAS_OVERLAY SUBGRUPO CONFIG VALOR
powercfg /setdcvalueindex ALIAS_OVERLAY SUBGRUPO CONFIG VALOR

Processor Power Management (PPM) profiles can also be queried with `/queryprofile` (`/qp`) and adjusted using `/setacprofileindex` and `/setdcprofileindex`. PPM profile aliases are visible with `/aliases` and support omitted arguments as in `/q` , or they can be used to fine-tune core parking with `ParkControl`.

powercfg /queryprofile ALIAS_OVERLAY_O_PLAN PERFIL CONFIG
powercfg /qp ALIAS_OVERLAY_O_PLAN PERFIL CONFIG
powercfg /setacprofileindex ALIAS_OVERLAY_O_PLAN PERFIL CONFIG VALOR
powercfg /setdcprofileindex ALIAS_OVERLAY_O_PLAN PERFIL CONFIG VALOR

To find out which PPM profiles have explicit values, use /listprofiles (/lp). This is how you audit active customizations on the device.

powercfg /listprofiles
powercfg /lp

Generating Provisioning XML (pxml)

Powercfg allows you to automatically generate a provisioning XML file with all device configurations marked as RUNTIME_OVERRIDE, ready for use in the Windows Configuration Designer and to create a .ppkg package. You can specify version, name, ID (GUID), and owner.

powercfg /pxml /output C:\\salida\\power-settings.xml
powercfg /pxml /output C:\\salida\\power-settings.xml \
  /version 1.0 /name CustomOEM.Power.Settings.Control \
  /id 00000000-0000-0000-0000-000000000000 /owner OEM

More essential commands and practical tricks

For quick queries: list plans (/list), activate one (/setactive), delete a plan (/delete), toggle hibernation (/hibernate on|off), analyze efficiency (/energy), see the cause of the last wake-up (/lastwake), or find out why it's not sleeping (/requests). These basic commands resolve 90% of everyday cases.

powercfg /list
powercfg /setactive GUID
powercfg /delete GUID
powercfg /hibernate OFF
powercfg /hibernate ON
powercfg /energy
powercfg /batteryreport
powercfg /lastwake
powercfg /requests
powercfg /devicequery S3_supported

Automate with .bat scripts: Open Notepad, write your command lines, and save it as a .BAT file (not .BAT.TXT). Double-clicking it will apply the changes immediately. For easier access, create a shortcut to the .BAT file and change its icon in Properties.

  Easy methods to Allow Or Disable Hibernate Mode In Home windows 10

Troubleshooting the case where "I launch /energy and the report doesn't appear"

If after “Enabling tracking for 60 seconds” you return to the prompt without opening anything, check these points: 1) Run as administrator; 2) Set /output to your own path (for example, C:\\Users\\YourUsername); 3) Close apps that maintain constant activity; 4) Try /duration 120 to better observe the system.

powercfg /energy /output "C:\\Usuarios\\TuUsuario\\informe-energia.html" /duration 120

Note that the report doesn't automatically open; it's saved in the current location or the one you specify with /output. Verify that the file exists in the expected directory and open it with your browser . If you continue to have configuration problems, see Windows 11 doesn't save power settings.

Permissions and security: beyond the user

Some commands require elevated privileges (for example, /systemsleepdiagnostics). If you manage networked computers, security descriptors with SDDL allow you to fine-tune who can create, activate, or reset plans. Use /getsecuritydescriptor to start with a valid SDDL and avoid errors.

Products and environments where these reports make a difference

Generating reports with powercfg is especially valuable for fleets and workstations: G Series, Alienware, Dell Laptops, Dell Plus, Dell Pro, Dell Pro Max, Dell Pro Plus, Dell Pro Premium, Inspiron, Latitude, Dell Pro Rugged, Vostro, XPS, legacy models, and mobile workstations (including the Dell Pro Max 16 XE MC16250). For all of these, /energy, /batteryreport, /sleepstudy, and /systempowerreport facilitate support and optimization.

Below is a rewritten summary of available options, with their descriptions, syntax, and examples. Use it as a quick reference for every need.

/?, -help

Displays help for command-line parameters. Perfect for remembering syntax on the spot.

powercfg /?

/list, /L

Lists all system power plans. Essential for understanding GUIDs.

powercfg /list

/query, /Q

Displays the contents of a plan, subgroup, or active configuration if GUIDs are omitted. Useful for discovering possible values ​​before setting them.

powercfg /query
powercfg /query GUID_PLAN
powercfg /query GUID_PLAN GUID_SUBGRUPO

/change, /X

Quick adjustment of times (monitor/disk/standby/hibernate) for AC or DC in the active plan. Values ​​are expressed in minutes.

powercfg /change monitor-timeout-ac 5

/changename

Change the name and description of a plan. Ideal for labeling corporate settings.

powercfg /changename GUID "Equilibrado Personalizado"

/duplicatescheme

Clone a plan and return the new GUID. Allows experimentation without losing the original.

powercfg /duplicatescheme GUID_ORIGEN

/delete, /D

Remove the plan indicated by GUID (it cannot be the active plan). Use it after confirming with /list.

powercfg /delete GUID

/deletesetting

Delete a specific setting within a subgroup. You need the subgroup and setting GUIDs.

powercfg /deletesetting GUID_SUBGRUPO GUID_CONFIG

/setactive, /S

Activate the indicated plan. It will be applied immediately.

powercfg /setactive GUID

/getactivescheme

Returns the currently active plan. Quick to check for changes.

powercfg /getactivescheme

/setacvalueindex

Sets the value of a configuration when the equipment is in AC mode. Requires GUID of plan, subgroup, configuration, and index.

powercfg /setacvalueindex GUID_PLAN GUID_SUBGRUPO GUID_CONFIG INDICE

/setdcvalueindex

Same as the previous one, but for DC (battery). Allows for different profiles in mobility.

powercfg /setdcvalueindex GUID_PLAN GUID_SUBGRUPO GUID_CONFIG INDICE

/import

Import a plan from a .pow file; you can assign a GUID. Exchange configurations between computers.

powercfg /import C:\\plan.pow

/export

Export a plan to a file. Back it up before making major changes.

powercfg /export C:\\plan.pow GUID

/aliases

Displays aliases and their GUIDs for use as shortcuts. Saves you from typing long GUIDs.

powercfg /aliases

/getsecuritydescriptor

Retrieves the security descriptor of a configuration/plan/action. Key in managed environments.

powercfg /getsecuritydescriptor GUID
powercfg /getsecuritydescriptor ActionSetActive

/setsecuritydescriptor

Set up an SDDL for configuration/plan/action. It is recommended to first obtain a valid SDDL with /getsecuritydescriptor.

powercfg /setsecuritydescriptor GUID SDDL
powercfg /setsecuritydescriptor ActionSetActive SDDL

/hibernate, /H

Enables/disables hibernation and adjusts the hiberfile. Supports /size and /type (reduced|full).

powercfg /hibernate off
powercfg /hibernate /size 100
powercfg /hibernate /type reduced

/availablesleepstates, /A

Reports available suspension states and reasons for unavailability. Quick diagnosis of S1/S2/S3/S4.

powercfg /availablesleepstates

/devicequery

List devices according to criteria: wake_from_S1/S2/S3, wake_from_any, S1/S2/S3/S4_supported, wake_programmable, wake_armed, all_devices. Refine what the device can wake up.

powercfg /devicequery wake_armed

/deviceenableawake

Allows a device to wake up the system. Uses the name exactly as returned by /devicequery.

powercfg /deviceenableawake "Nombre del dispositivo"

/devicedisablewake

It prevents the device from reactivating the system. It prevents accidental reactivations.

powercfg /devicedisablewake "Nombre del dispositivo"

/lastwake

Indicates what caused the last activation. Ideal after an unwanted awakening.

powercfg /lastwake

/waketimers

List active wake-up timers. Locate schedules that will turn on the equipment.

powercfg /waketimers

/ requests

It displays power requests from apps/drivers that prevent the screen from sleeping or turning off. The classic cause of "it won't go to sleep".

powercfg /requests

/requestsoverride

Defines request invalidations for a process, service, or controller in display/system/awaymode. Use it judiciously in specific cases.

powercfg /requestsoverride process nombre.exe display system

/energy

Analyzes the system for efficiency issues and generates HTML or XML. Supports /output, /xml, /duration, /trace, and /d.

powercfg /energy
powercfg /energy /output "longtrace.html" /duration 120

/batteryreport

Creates an HTML (or XML) report of battery usage and status. Allows /output and /duration (days).

powercfg /batteryreport /output "batteryreport.html"
powercfg /batteryreport /duration 4

/sleepstudy

Generates modern wait times diagnostics for the last few days. Can be converted from XML to HTML.

powercfg /sleepstudy /output "sleepstudy.html"
powercfg /sleepstudy /duration 7

/srumutil

Export SRUM energy estimation data to XML or CSV. For detailed analysis of consumption by app.

powercfg /srumutil /output "srumreport.xml" /xml

/systemsleepdiagnostics

Reports on time intervals without a user and whether the system went to sleep (requires admin). Exports HTML or XML and allows XML transformation.

powercfg /systemsleepdiagnostics /output "system-sleep-diagnostics.html"

/systempowerreport, /spr

Report of power transitions for the last few days (includes Connected Standby). Supports /output, /xml, /duration, and /transformxml.

powercfg /systempowerreport /output "system-power-report.html"

With all of the above, powercfg becomes your energy "Swiss Army knife": diagnose with /energy, cross-reference data with /batteryreport and /sleepstudy, monitor what wakes up the computer, and fine-tune policies for AC/DC and PPM profiles. In just a few minutes, you'll know what's draining your battery life and which levers to adjust.

In power saving mode, the internet disconnects in Windows 11.
Related articles:
Windows 11 cuts off the internet during power saving: causes and solutions