How to change Power options through registry or through command line?

I want to change powercfg.cpl "Power Options" directly through registry.

Specifically I want to change this:

enter image description here

To these settings:

enter image description here

I am using a desktop computer on alternating current power, therefore power saving is unnecessary and it impairs performance; I have disabled fast boot in BIOS.

I have opened this registry key in regedit.exe:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

And the only things I can make out inside the key are:

HiberFileSizePercent REG_DWORD 0
HibernateEnabled REG_DWORD 0
HibernateEnabledDefault REG_DWORD 1

I tried to use powercfg.exe and this is what I got:

C:\Windows\system32>powercfg /l
Existing Power Schemes (* Active)
-----------------------------------
Power Scheme GUID: 381b4222-f694-41f0-9685-ff5bb260df2e (Balanced)
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance) *
Power Scheme GUID: a1841308-3541-4fab-bc81-f71556f20b4a (Power saver)
C:\Windows\system32>powercfg /q
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance) GUID Alias: SCHEME_MIN Subgroup GUID: 0012ee47-9041-4b5d-9b77-535fba8b1442 (Hard disk) GUID Alias: SUB_DISK Power Setting GUID: 6738e2c4-e8a5-4a42-b16a-e040e769756e (Turn off hard disk after) GUID Alias: DISKIDLE Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0xffffffff Possible Settings increment: 0x00000001 Possible Settings units: Seconds Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x000004b0 Subgroup GUID: 02f815b5-a5cf-4c84-bf20-649d1f75d3d8 (Internet Explorer) Power Setting GUID: 4c793e7d-a264-42e1-87d3-7a0d2f523ccd (JavaScript Timer Frequency) Possible Setting Index: 000 Possible Setting Friendly Name: Maximum Power Savings Possible Setting Index: 001 Possible Setting Friendly Name: Maximum Performance Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Subgroup GUID: 0d7dbae2-4294-402a-ba8e-26777e8488cd (Desktop background settings) Power Setting GUID: 309dce9b-bef4-4119-9921-a851fb12f0f4 (Slide show) Possible Setting Index: 000 Possible Setting Friendly Name: Available Possible Setting Index: 001 Possible Setting Friendly Name: Paused Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Subgroup GUID: 19cbb8fa-5279-450e-9fac-8a3d5fedd0c1 (Wireless Adapter Settings) Power Setting GUID: 12bbebe6-58d6-4636-95bb-3217ef867c1a (Power Saving Mode) Possible Setting Index: 000 Possible Setting Friendly Name: Maximum Performance Possible Setting Index: 001 Possible Setting Friendly Name: Low Power Saving Possible Setting Index: 002 Possible Setting Friendly Name: Medium Power Saving Possible Setting Index: 003 Possible Setting Friendly Name: Maximum Power Saving Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Subgroup GUID: 238c9fa8-0aad-41ed-83f4-97be242c8f20 (Sleep) GUID Alias: SUB_SLEEP Power Setting GUID: 29f6c1db-86da-48c5-9fdb-f2b67b1f44da (Sleep after) GUID Alias: STANDBYIDLE Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0xffffffff Possible Settings increment: 0x00000001 Possible Settings units: Seconds Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Power Setting GUID: 94ac6d29-73ce-41a6-809f-6363ba21b47e (Allow hybrid sleep) GUID Alias: HYBRIDSLEEP Possible Setting Index: 000 Possible Setting Friendly Name: Off Possible Setting Index: 001 Possible Setting Friendly Name: On Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Power Setting GUID: 9d7815a6-7ee4-497e-8888-515a05f02364 (Hibernate after) GUID Alias: HIBERNATEIDLE Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0xffffffff Possible Settings increment: 0x00000001 Possible Settings units: Seconds Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Power Setting GUID: bd3b718a-0680-4d9d-8ab2-e1d2b4ac806d (Allow wake timers) GUID Alias: RTCWAKE Possible Setting Index: 000 Possible Setting Friendly Name: Disable Possible Setting Index: 001 Possible Setting Friendly Name: Enable Possible Setting Index: 002 Possible Setting Friendly Name: Important Wake Timers Only Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Subgroup GUID: 2a737441-1930-4402-8d77-b2bebba308a3 (USB settings) Power Setting GUID: 48e6b7a6-50f5-4782-a5d4-53bb8f07e226 (USB selective suspend setting) Possible Setting Index: 000 Possible Setting Friendly Name: Disabled Possible Setting Index: 001 Possible Setting Friendly Name: Enabled Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Subgroup GUID: 4f971e89-eebd-4455-a8de-9e59040e7347 (Power buttons and lid) GUID Alias: SUB_BUTTONS Power Setting GUID: a7066653-8d6c-40a8-910e-a1f54b84c7e5 (Start menu power button) GUID Alias: UIBUTTON_ACTION Possible Setting Index: 000 Possible Setting Friendly Name: Sleep Possible Setting Index: 001 Possible Setting Friendly Name: Hibernate Possible Setting Index: 002 Possible Setting Friendly Name: Shut down Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Subgroup GUID: 501a4d13-42af-4429-9fd1-a8218c268e20 (PCI Express) GUID Alias: SUB_PCIEXPRESS Power Setting GUID: ee12f906-d277-404b-b6da-e5fa1a576df5 (Link State Power Management) GUID Alias: ASPM Possible Setting Index: 000 Possible Setting Friendly Name: Off Possible Setting Index: 001 Possible Setting Friendly Name: Moderate power savings Possible Setting Index: 002 Possible Setting Friendly Name: Maximum power savings Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Subgroup GUID: 54533251-82be-4824-96c1-47b60b740d00 (Processor power management) GUID Alias: SUB_PROCESSOR Power Setting GUID: 893dee8e-2bef-41e0-89c6-b55d0929964c (Minimum processor state) GUID Alias: PROCTHROTTLEMIN Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000064 Current DC Power Setting Index: 0x00000005 Power Setting GUID: 94d3a615-a899-4ac5-ae2b-e4d8f634367f (System cooling policy) GUID Alias: SYSCOOLPOL Possible Setting Index: 000 Possible Setting Friendly Name: Passive Possible Setting Index: 001 Possible Setting Friendly Name: Active Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Power Setting GUID: bc5038f7-23e0-4960-96da-33abaf5935ec (Maximum processor state) GUID Alias: PROCTHROTTLEMAX Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000064 Current DC Power Setting Index: 0x00000064 Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40cc99 (Display) GUID Alias: SUB_VIDEO Power Setting GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e (Turn off display after) GUID Alias: VIDEOIDLE Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0xffffffff Possible Settings increment: 0x00000001 Possible Settings units: Seconds Current AC Power Setting Index: 0x00000708 Current DC Power Setting Index: 0x00000258 Power Setting GUID: aded5e82-b909-4619-9949-f5d71dac0bcb (Display brightness) Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000064 Current DC Power Setting Index: 0x00000064 Power Setting GUID: f1fbfde2-a960-4165-9f88-50667911ce96 (Dimmed display brightness) Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000032 Current DC Power Setting Index: 0x00000032 Power Setting GUID: fbd9aa66-9553-4097-ba44-ed6e9d65eab8 (Enable adaptive brightness) GUID Alias: ADAPTBRIGHT Possible Setting Index: 000 Possible Setting Friendly Name: Off Possible Setting Index: 001 Possible Setting Friendly Name: On Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Subgroup GUID: e73a048d-bf27-4f12-9731-8b2076e8891f (Battery) GUID Alias: SUB_BATTERY Power Setting GUID: 5dbb7c9f-38e9-40d2-9749-4f8a0e9f640f (Critical battery notification) GUID Alias: BATFLAGSCRIT Possible Setting Index: 000 Possible Setting Friendly Name: Off Possible Setting Index: 001 Possible Setting Friendly Name: On Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Power Setting GUID: 637ea02f-bbcb-4015-8e2c-a1c7b9c0b546 (Critical battery action) GUID Alias: BATACTIONCRIT Possible Setting Index: 000 Possible Setting Friendly Name: Do nothing Possible Setting Index: 001 Possible Setting Friendly Name: Sleep Possible Setting Index: 002 Possible Setting Friendly Name: Hibernate Possible Setting Index: 003 Possible Setting Friendly Name: Shut down Current AC Power Setting Index: 0x00000002 Current DC Power Setting Index: 0x00000002 Power Setting GUID: 8183ba9a-e910-48da-8769-14ae6dc1170a (Low battery level) GUID Alias: BATLEVELLOW Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x0000000a Current DC Power Setting Index: 0x0000000a Power Setting GUID: 9a66d8d7-4ff7-4ef9-b5a2-5a326ca2a469 (Critical battery level) GUID Alias: BATLEVELCRIT Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000005 Current DC Power Setting Index: 0x00000005 Power Setting GUID: bcded951-187b-4d05-bccc-f7e51960c258 (Low battery notification) GUID Alias: BATFLAGSLOW Possible Setting Index: 000 Possible Setting Friendly Name: Off Possible Setting Index: 001 Possible Setting Friendly Name: On Current AC Power Setting Index: 0x00000001 Current DC Power Setting Index: 0x00000001 Power Setting GUID: d8742dcb-3e6a-4b3c-b3fe-374623cdcf06 (Low battery action) GUID Alias: BATACTIONLOW Possible Setting Index: 000 Possible Setting Friendly Name: Do nothing Possible Setting Index: 001 Possible Setting Friendly Name: Sleep Possible Setting Index: 002 Possible Setting Friendly Name: Hibernate Possible Setting Index: 003 Possible Setting Friendly Name: Shut down Current AC Power Setting Index: 0x00000000 Current DC Power Setting Index: 0x00000000 Power Setting GUID: f3c5027d-cd16-4930-aa6b-90db844a8f00 (Reserve battery level) Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0x00000064 Possible Settings increment: 0x00000001 Possible Settings units: % Current AC Power Setting Index: 0x00000007 Current DC Power Setting Index: 0x00000007

I really don't understand any of these...

How can I use a script to automatically change Power Options to the settings posted above, as I don't want to do it manually?

2

2 Answers

The powercfg settings aren't too difficult to understand. Here's my display sleep settings;

 Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40cc99 (Display) GUID Alias: SUB_VIDEO Power Setting GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e (Turn off display after) GUID Alias: VIDEOIDLE Minimum Possible Setting: 0x00000000 Maximum Possible Setting: 0xffffffff Possible Settings increment: 0x00000001 Possible Settings units: Seconds Current AC Power Setting Index: 0x00000384 Current DC Power Setting Index: 0x00000384

The first few lines contain the unique identifier for the setting.

  • The ID for the display group (beginning with 751)
  • The ID for the "Turn off display" setting (beginning with 3c0)
  • The maximum and minimum allowed values for this setting showing between the value 0 and ffffffff.
  • The resolution for the setting, in this case increments of 1.
  • The unit this value is measuring, this case Seconds.
  • The current AC and DC settings are both set to 0x384, which in decimal is 900 seconds, or 15 minutes.

We can set the AC (or DC) values with the /SETACVALUEINDEX ( or /SETDCVALUEINDEX)

  • first we specify the power setting scheme (by GUID) which was listed using the /l in your case, the active settings are the high performance settings, which has a GUID of: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
  • Then we specify the Subgroup GUID, In my case for the display settings GUID is: 7516b95f-f776-4464-8c53-06167f40cc99
  • Followed by the settings GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e
  • Then the new value we want, this can be decimal (or hex with a preceding 0x)

This is the command you'd run to change the AC display sleep settings;

powercfg /SETACVALUEINDEX fb5220ff-7e1a-47aa-9a42-50ffbf45c673 7516b95f-f776-4464-8c53-06167f40cc99 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e 600

This is using the GUIDs from my machine, setting the sleep timeout to 10 minutes (600 seconds)

You could also use the GUID Aliases as listed with the /q command;

  • SUB_VIDEO is alias for 7516b95f-f776-4464-8c53-06167f40cc99
  • VIDEOIDLE is alias for 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e

I assume that these alias names are the same across machines. The Power scheme doesn't have an alias. So the command would be;

powercfg /SETACVALUEINDEX fb5220ff-7e1a-47aa-9a42-50ffbf45c673 SUB_VIDEO VIDEOIDLE 600

Never mind, I have solved it, again (sort of).

I just exported the entire registry key to a registry file named PowerCFG.reg located on Desktop using regedit.exe.

The file is way too long to be posted here, and I have converted it to a ps1 file which is even longer, I have uploaded them to Google Drive:PowerCFG.reg and PowerCFG_reg.ps1

The registry file has 9232 lines and 645546 characters, the script file has 3491 lines and 855339 characters. I figure I might just import the registry file.

To understand the guids and hexes is just too hard and will cost too much energy, it's not very efficient.

However, since all the settings are stored in this registry key:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power

Simply exporting and importing it should set the settings to what I want them to be, I don't need to understand each of these keys and values, I just need to tell the computer to import the key.

I have confirmed, simply double clicking or reg import will not properly import the settings, access is denied;

So I imported the key by:

psexec -S cmd /k reg import PowerCFG.reg

With TrustedInstaller privilege, the command completed successfully without errors.


P.S.

Trying to run the _reg.ps1 file will generate many errors like this one:

Set-ItemProperty: C:\Users\Estranger\Desktop\PowerCFG_reg.ps1:752
Line | 752 | Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Power\ … | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ | Cannot convert value "0xda7f5e8cbfe8964a9a85a6e23a8c635c" to type "System.Byte[]". Error: "Cannot | convert value "0xda7f5e8cbfe8964a9a85a6e23a8c635c" to type "System.Byte". Error: "Value was either too | large or too small for a UInt32.""

The offenders are REG_BINARY values.

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like