Powercfg command-line options

Use powercfg.exe to control power plans - also called power schemes - to use the available sleep states, to control the power states of individual devices, and to analyze the system for common energy-efficiency and battery-life problems.

Syntax

Powercfg command lines use the following syntax:

powercfg /option [arguments] [/?]

where option is one of the options listed in the following table, and arguments is one or more arguments that apply to the selected option. Including /? in a command line displays help for the specified option. Options and arguments are described in more detail later in this topic.

Command-line options

Option Description
/?, -help Displays information about command-line parameters.
/list, /L Lists all power schemes.
/query, /Q Displays the contents of a power scheme.
/change, /X Modifies a setting value in the current power scheme.
/changename Modifies the name and description of a power scheme.
/duplicatescheme Duplicates a power scheme.
/delete, /D Deletes a power scheme.
/deletesetting Deletes a power setting.
/setactive, /S Makes a power scheme active on the system.
/getactivescheme Retrieves the currently active power scheme.
/setacvalueindex Sets the value associated with a power setting while the system is powered by AC power.
/setdcvalueindex Sets the value associated with a power setting while the system is powered by DC power.
/import Imports all power settings from a file.
/export Exports a power scheme to a file.
/aliases Displays all aliases and their corresponding GUIDs.
/getsecuritydescriptor Gets a security descriptor associated with a specified power setting, power scheme, or action.
/setsecuritydescriptor Sets a security descriptor associated with a power setting, power scheme, or action.
/hibernate, /H Enables and disables the hibernate feature.
/availablesleepstates, /A Reports the sleep states available on the system.
/devicequery Returns a list of devices that meet specified criteria.
/deviceenableawake Enables a device to wake the system from a sleep state.
/devicedisablewake Disables a device from waking the system from a sleep state.
/lastwake Reports information about what woke the system from the last sleep transition.
/waketimers Enumerates active wake timers.
/requests Enumerates application and driver Power Requests.
/requestsoverride Sets a Power Request override for a particular Process, Service, or Driver.
/energy Analyzes the system for common energy-efficiency and battery life problems.
/batteryreport Generates a report of battery usage.
/sleepstudy Generates a diagnostic system power transition report.
/srumutil Dumps Energy Estimation data from System Resource Usage Monitor (SRUM).
/systemsleepdiagnostics Generates a diagnostic report of system sleep transitions.
/systempowerreport Generates a diagnostic system power transition report.

Command-line option descriptions

The following sections describe Powercfg command-line options and arguments.

-help or /?

Displays information about command-line parameters.

Syntax:

powercfg /?

/list or /L

Lists all power schemes.

Syntax:

powercfg /list

/query or /Q

Displays the contents of the specified power scheme.

Syntax:

powercfg /query [scheme_GUID] [sub_GUID]

If neither the parameter scheme_GUID or sub_GUID are provided, the settings of the current active power scheme are displayed. If the parameter sub_GUID is not specified, all settings in the specified power scheme are displayed.

Arguments:

scheme_GUID

  Specifies a power scheme GUID. Running powercfg /list returns a power scheme GUID.

sub_GUID

  Specifies a power-setting subgroup GUID. A power setting subgroup GUID is returned by running powercfg /query.

Examples:

powercfg /query
powercfg /query 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20

/change or /X

Modifies a setting value in the current power scheme.

Syntax:

 /change setting value

Arguments:

setting

  Specifies one of the following options:

  • monitor-timeout-ac
  • monitor-timeout-dc
  • disk-timeout-ac
  • disk-timeout-dc
  • standby-timeout-ac
  • standby-timeout-dc
  • hibernate-timeout-ac
  • hibernate-timeout-dc

value

  Specifies the new value, in minutes.

Examples:

powercfg /change monitor-timeout-ac 5

/changename

Modifies the name of a power scheme and optionally its description.

Syntax:

 powercfg /changename *scheme_GUID * name [description]

Arguments:

scheme_GUID

  Specifies a power scheme GUID. Running powercfg /list returns a power scheme GUID.

name

  Specifies the power scheme's new name.

description

Specifies the power scheme's new description. If no description is specified, only the name is changed.

Examples:

powercfg /changename 381b4222-f694-41f0-9685-ff5bb260df2e "Customized Balanced"

/duplicatescheme

Duplicates the specified power scheme. The resulting GUID which represents the new scheme is displayed.

Syntax:

 powercfg /duplicatescheme scheme_GUID [destination_GUID]

Arguments:

scheme_GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

destination_GUID

  Specifies the new power scheme's GUID. If no GUID is specified, a new GUID is created.

Examples:

powercfg /duplicatescheme 381b4222-f694-41f0-9685-ff5bb260df2e

/delete or /D

Deletes the power scheme with the specified GUID.

Syntax:

 powercfg /delete scheme_GUID

Arguments:

scheme_GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

Examples:

powercfg /delete 381b4222-f694-41f0-9685-ff5bb260df2e

/deletesetting

Deletes a power setting.

Syntax:

 powercfg /deletesetting sub_GUID setting_GUID

Arguments:

sub_GUID

  Specifies a power setting subgroup GUID. A power setting subgroup GUID is returned by running powercfg /query.

setting_GUID

  Specifies a power setting GUID. A power setting GUID is returned by running powercfg /query.

Examples:

powercfg /deletesetting 238c9fa8-0aad-41ed-83f4-97be242c8f20 29f6c1db-86da-48c5-9fdb-f2b67b1f44da

/setactive or /S

Makes the specified power scheme active on the system.

Syntax:

 powercfg /setactive scheme_GUID

Arguments:

scheme_GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

Examples:

powercfg /setactive 381b4222-f694-41f0-9685-ff5bb260df2e

/getactivescheme

Retrieves the currently active power scheme.

Syntax:

 powercfg /getactivescheme

/setacvalueindex

Sets the value associated with a specified power setting while the system is powered by AC power.

Syntax:

 powercfg /setacvalueindex scheme_GUID sub_GUID setting_GUID setting_index

Arguments:

scheme_GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

sub_GUID

  Specifies a power setting subgroup GUID. Running powercfg /query returns a power setting subgroup GUID.

setting_GUID

  Specifies a power setting GUID. A power setting GUID is returned by running powercfg /query.

setting_index

  Specifies which possible value this setting is set to. A list of possible values is returned by running powercfg /query.

Examples:

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

/setdcvalueindex

Sets the value associated with a specified power setting while the system is powered by DC power.

Syntax:

 powercfg /setdcvalueindex scheme_GUID sub_GUID setting_GUID setting_index

Arguments:

scheme_GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

sub_GUID

  Specifies a power setting subgroup GUID. A power setting subgroup GUID is returned by running powercfg /query.

setting_GUID

  Specifies a power setting GUID. A power setting GUID is returned by running powercfg /query.

setting_index

  Specifies which possible value this setting is set to. A list of possible values is returned by running powercfg /query.

Examples:

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

/import

Imports a power scheme from the specified file.

Syntax:

 powercfg /import file_name [GUID]

Arguments:

file_name

  Specifies a fully-qualified path to a file returned by running powercfg /export.

GUID

  Specifies the GUID for the imported scheme. If no GUID is specified, a new GUID is created.

Examples:

powercfg /import c:\scheme.pow

/export

Exports a power scheme, represented by the specified GUID, to the specified file.

Syntax:

 powercfg /export file_name GUID

Arguments:

file_name

  Specifies a fully-qualified path to a destination file.

GUID

  Specifies a power scheme GUID. A power scheme GUID is returned by running powercfg /list.

Examples:

powercfg /export c:\scheme.pow 381b4222-f694-41f0-9685-ff5bb260df2e

/aliases

Displays a list of aliases and their corresponding GUIDs. These aliases may be used instead of a GUID in any command.

Syntax:

 powercfg /aliases

Note

Some settings do not contain aliases. For a full list of GUIDs, use powercfg /query.

/getsecuritydescriptor

Gets the security descriptor associated with the specified power setting, power scheme, or action.

Syntax:

 powercfg /getsecuritydescriptor GUID | action

Arguments:

GUID

  Specifies a power scheme or a power setting GUID. A power scheme GUID is returned by running powercfg /list. A power setting GUID is returned by running powercfg /query.

action

  Specifies one of the following actions:

  • ActionSetActive
  • ActionCreate
  • ActionDefault

Examples:

powercfg /getsecuritydescriptor 381b4222-f694-41f0-9685-ff5bb260df2e<br />
powercfg /getsecuritydescriptor ActionSetActive

/setsecuritydescriptor

Sets a security descriptor associated with the specified power setting, power scheme, or action.

Syntax:

 powercfg /setsecuritydescriptor GUID | action SDDL

Arguments:

GUID

  Specifies a power scheme or a power setting GUID. A power scheme GUID is returned by running powercfg /list. A power setting GUID is returned by running powercfg /query.

action

  Specifies one of the following actions:

  • ActionSetActive
  • ActionCreate
  • ActionDefault

SDDL

  Specifies a valid security descriptor string in SDDL format. An example SDDL string can be obtained by running powercfg /getsecuritydescriptor.

Examples:

powercfg /setsecuritydescriptor 381b4222-f694-41f0-9685-ff5bb260df2e O:BAG:SYD:P(A;CI;KRKW;;;BU)(A;CI;KA;;;BA)(A;CI;KA;;;SY)(A;CI;KA;;;CO)<br />

powercfg /setsecuritydescriptor ActionSetActive O:BAG:SYD:P(A;CI;KR;;;BU)(A;CI;KA;;;BA)(A;CI;KA;;;SY)(A;CI;KA;;;CO)

/hibernate or /H

Enables or disables the hibernate feature; also, sets the hiberfile size.

Syntax:

 powercfg /hibernate

 powercfg /hibernate [ on | off ]

 powercfg /hibernate [ /size percent_size]

 powercfg /hibernate [ /type reduced | full ]

Arguments:

On

  Enables the hibernate feature.

 Off

  Disables the hibernate feature.

 /size percent_size

  Specifies the desired hiberfile size as a percentage of the total memory size. The default size cannot be smaller than 50. This parameter also causes hibernation to be enabled.

 /type reduced | full

  Specifies the desired hiberfile type. A reduced hiberfile only supports hiberboot.

Note

A hiberfile that has a custom default size, or HiberFileSizePercent >= 40, is considered as a full hiberfile. HiberFileSizePercent is set in the registry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power.

To change the hiberfile type to reduced, the OS has to manage the default hiberfile size. To do this, run the following commands:

powercfg /hibernate /size 0

powercfg /hibernate /type reduced

Examples:

powercfg /hibernate off<br /> powercfg /hibernate /size 100<br /> powercfg /hibernate /type reduced

/availablesleepstates or /A

Reports the sleep states available on the system. Attempts to report reasons why sleep states are unavailable.

Syntax:

 powercfg /availablesleepstates

/devicequery

Returns a list of devices that meet the specified criteria.

Syntax:

 powercfg /devicequery query_flag

Arguments:

query_flag

  Specifies one of the following criteria:

   wake_from_S1_supported   Returns all devices that support waking the system from a light sleep state.

   wake_from_S2_supported   Returns all devices that support waking the system from a deeper sleep state.

   wake_from_S3_supported   Returns all devices that support waking the system from the deepest sleep state.

   wake_from_any   Returns all devices that support waking the system from any sleep state.

   S1_supported   Lists devices supporting light sleep.

   S2_supported   Lists devices supporting deeper sleep.

   S3_supported   Lists devices supporting deepest sleep.

   S4_supported   List devices supporting hibernation.

   wake_programmable   Lists devices that are user-configurable to wake the system from a sleep state.

   wake_armed   Lists devices that are currently configured to wake the system from any sleep state.

   all_devices   Returns all devices present in the system.

Examples:

powercfg /devicequery wake_armed

/deviceenableawake

Enables the specified device to wake the system from a sleep state.

Syntax:

 powercfg /deviceenableawake device_name

Arguments:

device_name

  Specifies a device. This device name may be retrieved using powercfg /devicequery wake_programmable.

Examples:

powercfg /deviceenableawake &quot;Microsoft USB IntelliMouse Optical&quot;

/devicedisablewake

Disables the specified device from waking the system from a sleep state.

Syntax:

 powercfg /devicedisablewake device_name

Arguments:

device_name

  Specifies a device. This device name may be retrieved using powercfg /devicequery wake_armed.

Examples:

powercfg /devicedisablewake &quot;Microsoft USB IntelliMouse Optical&quot;

/lastwake

Reports information about what woke the system from the last sleep transition.

Syntax:

 powercfg /lastwake

/waketimers

Enumerates the active wake timers. If enabled, the expiration of a wake timer wakes the system from sleep and hibernate states.

Syntax:

 powercfg /waketimers

/requests

Enumerates application and driver Power Requests. Power Requests prevent the computer from automatically powering off the display or entering a low-power sleep mode.

Syntax:

 powercfg /requests

/requestsoverride

Sets a Power Request override for a particular process, service, or driver. If no parameters are specified, this command displays the current list of Power Request overrides.

Syntax:

 powercfg /requestsoverride [caller_type name request]

Arguments:

Caller_type

  Specifies one of the following caller types: process, service, driver. This is obtained by running powercfg /requests.

name

  Specifies the caller name. This is the name returned by running powercfg /requests.

request

  Specifies one or more of the following Power Request types:

  • Display
  • System
  • Awaymode

Examples:

powercfg /requestsoverride process wmplayer.exe display system

/energy

Analyzes the system for common energy-efficiency and battery-life problems and generates a report, an HTML file, in the current path.

Syntax:

 powercfg /energy [ /output file_name] [ /xml ] [ /duration seconds ]

 powercfg /energy /trace [ /d file_path] [ /xml ] [ /duration seconds]

 The /energy option should be used when the computer is idle and has no open programs or documents.

Arguments:

 /output file_name

  Specify the path and file name to store the energy report HTML or XML file.

 /xml

  Formats the report file as XML.

 /duration seconds

  Specifies the number of seconds to observe system behavior. Default is 60 seconds.

 /trace

  Records system behavior and does not perform analysis. Trace files are generated in the current path unless the /D parameter is specified.

 /d file_path

  Specify the directory to store trace data. May only be used with the /trace parameter.

Examples:

powercfg /energy<br />
powercfg /energy /output &quot;longtrace.html&quot; /duration 120

/batteryreport

Generates a report of battery usage characteristics over the lifetime of the system. Running powercfg /batteryreport generates an HTML report file in the current path.

Syntax:

 powercfg /batteryreport [ /output file_name ] [ /xml ]

 powercfg /batteryreport [ /duration days ]

Arguments:

 /output file_name

  Specify the path and file name to store the battery report HTML.

 /output file_name /xml

  Formats the battery report file as XML.

 /duration days

  Specifies the number of days to analyze for the report.

Examples:

powercfg /batteryreport /output &quot;batteryreport.html&quot;<br />
powercfg /batteryreport /duration 4

/sleepstudy

Generates a diagnostic report of modern standby quality over the last three days on the system. The report is a file that is saved in the current path.

Syntax:

 powercfg /sleepstudy [ /output file_name ] [ /xml ]

 powercfg /sleepstudy [ /duration days]

 powercfg /sleepstudy [ /transformxmL file_name.xml ] [ /output file_name.html ]

Arguments:

 /output file_name

  Specify the path and file name to store the Sleepstudy report HTML.

 /output file_name /xml

  Formats the Sleepstudy report file as XML.

 /duration days

  Specifies the number of days to analyze for the report.

 /transformxml file_name.xml /output file_name.html

  Transforms the Sleepstudy report from XML to HTML.

Examples:

powercfg /sleepstudy /output &quot;sleepstudy.html&quot;<br />
powercfg /sleepstudy /duration 7

/srumutil

Enumerates the entire Energy Estimation data from the System Resource Usage Monitor (SRUM) in an XML or CSV file.

Syntax:

 powercfg /srumutil [ /output file_name ] [ /xml ] [ /csv ]

Arguments:

 /output file_name

  Specify the path and file name to store the SRUM data.

 /output file_name /xml

  Formats the file as XML.

 /output file_name /csv

  Formats the file as CSV.

Examples:

powercfg /batteryreport /output &quot;srumreport.xml&quot; /xml

/systemsleepdiagnostics

Generates a report of intervals when the user was not present over the last three days on the system, and if the system went to sleep. This option generates a report, an HTML file, in the current path.

This command requires administrator privileges and must be executed from an elevated command prompt.

Syntax:

 powercfg /systemsleepdiagnostics [ /output file_name ] [ /xml ]

Arguments:

 /output file_name

  Specifies the path and file name of the diagnostics report.

 /xml

  Save the report as an XML file.

 /duration days

  Specifies the number of days to analyze for the report.

 /transformxml file_name

  Produces a report in HTML from a report that was previously created in XML.

Examples:

powercfg /systemsleepdiagnostics<br/>
powercfg /systemsleepdiagnostics /output &quot;system-sleep-diagnostics.html&quot;<br/>
powercfg /systemsleepdiagnostics /output &quot;system-sleep-diagnostics.xml&quot; /XML<br/>
powercfg /systemsleepdiagnostics /transformxml &quot;system-sleep-diagnostics.xml&quot;

/systempowerreport or /spr

Generates a report of system power transitions over the last three days on the system, including connected standby power efficiency. This option generates a report, an HTML file, in the current path.

This command requires administrator privileges and must be executed from an elevated command prompt.

Syntax:

 powercfg /getsecuritydescriptor GUID | action

Arguments:

 /output file_name

  Specifies the path and file name of the diagnostics report.

 /xml

  Save the report as an XML file.

 /duration days

  Specifies the number of days to analyze for the report.

 /transformxml file_name

  Produces a report in HTML from a report that was previously created in XML.

Examples:

powercfg /systempowerreport<br/>
powercfg /systempowerreport /output &quot;sleepstudy.html&quot;<br/>
powercfg /systempowerreport /output &quot;sleepstudy.xml&quot; /XML<br/>
powercfg /systempowerreport /transformxml &quot;sleepstudy.xml&quot;

Overlay Scheme and PPM Profile Support

Overlay power schemes and PPM profiles can now be customized through powercfg.exe. It is important to note that overlay schemes are now limited to customizing settings that affect performance versus power savings tradeoff. This is currently related to settings under the PPM and Graphics power settings subgroups (with aliases SUB_PROCESSOR and SUB_GRAPHICS in powercfg). Attempts to write to other subgroups under overlay schemes will result in an error message.

Reading from overlay schemes

The powercfg commands used earlier to read power schemes now support overlay schemes as well for reads and writes.

Syntax:

 powercfg /q overlay_scheme_alias subgroup_alias setting_alias

All arguments after the /q flag are optional. If the setting alias is not specified, all settings under the specified overlay scheme and subgroup will be enumerated. If the subgroup is not specified, then all settings for all subgroups under the specified overlay scheme will be enumerated. If the overlay scheme is not specified, then it will be assumed to be the currently active overlay scheme (if active) or the current power scheme (if no overlay is active).

Writing to overlay schemes

The commands setacvalueindex and setdcvalueindex now support overlay schemes as well.

Syntax:

 powercfg /setacvalueindex overlay_scheme_alias subgroup_alias setting_alias value

 powercfg /setdcvalueindex overlay_scheme_alias subgroup_alias setting_alias value

Reading from PPM profile

The commands are similar to that of overlay schemes and power schemes, except that they use the /qp flag.

Syntax:

 powercfg /queryprofile overlay_or_power_scheme_alias profile_alias setting_alias

 powercfg /qp overlay_or_power_scheme_alias profile_alias setting_alias

PPM profile aliases are visible by running the same powercfg /aliasesh command. Support for missing arguments is provided, and the behavior is similar to when arguments are missing and the /q flag is used.

Writing to PPM profile

For writing to PPM profiles, the /setacprofileindex and /setdcprofileindex commands can be used.

Syntax:

 powercfg /setacprofileindex overlay_or_scheme_alias profile_alias setting_alias value

 powercfg /setdcprofileindex overlay_or_scheme_alias profile_alias setting_alias value

Enumerating non-empty PPM Profiles

For enumerating PPM profiles which have at least one power setting value explicitly set.

Syntax:

 powercfg /listprofiles

 powercfg /lp

Provisioning XML Generation Support

Powercfg now supports automatically generating a provisioning XML file that can be used as an input to Windows Configuration Designer in order to generate a provisioning package (.ppkg) that contains the customized settings from a device under test. This file contains all settings on the device with the "RUNTIME_OVERRIDE" altitude value.

Syntax:

 powercfg /pxml /output output_file_path

 powercfg /pxml /output output_file_path /version version_number /name package_name /id GUID /owner OwnerType_value

Required Arguments:

 /output_file_path: Specifies the location and name of the generated XML.

Optional Arguments:

 /version: Optionally specifies the value of the "Version" field in the generated XML. Default: 1.0

 /name: Optionally specifies the value of the "Name" field in the generated XML. Default: CustomOEM.Power.Settings.Control

 /id: Optionally specifies a GUID string that is used in the "ID" field in the generated XML. Default: new GUID is generated

 /owner: Optionally specified the value of the "OwnerType" field in the generated XML. Default: OEM