Windows shutting down rather than hibernating when battery level critical

0

According to Power Options, my laptop is set to hibernate when the battery level becomes critical, which is defined as 2%. I thought that is what happened last night, after I got the battery warning, and then when the display faded out shortly after that, and the hard disk started spinning. I then plugged it into a power outlet. When I powered up this morning, however, I got the warning the Windows shut down abnormally, and I selected to boot up as normal. My previous login session was gone, and I had to clean up temporary files. Apparently, Windows at forcibly shut down rather than hibernating, even though my power settings specified the latter. Is there any other system setting that could be responsible for this? My account is a non-administrator account.

While posting this, I was referred to this superuser page, but the symptoms aren't exactly the same, i.e., I don't see a shutdown upon powering up, I see a powerup process as if I had shut down instead of hibernated. Also, it's quite an old article, so the issue is unlikely to be around now, and I don't have access to the registry anyway (which is the solution referenced).

I posted this question earlier to the microsoft site. I am using Windows 7 Enterprise.

Here is an excerpt of the powercfg /query command that seem to be pertinent to the Critical battery level. Unfortunately, I don't have the permissions to bump up the 2% Critical level:

Power Scheme GUID: 999a9999-a999-99a9-9999-aa9aa999aa9a  (Balanced)

  <...snip...>

  Subgroup GUID: a99a999a-aa99-9a99-9999-9a9999a9999a  (Battery)
    Power Setting GUID: 999aa99a-aaaa-9999-9a9a-a9a9a9a9a999  (Critical battery action)
      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: 0x00000002

    <...snip...>

    Power Setting GUID: 9a99a9a9-9aa9-9aa9-a9a9-9a999aa9a999  (Critical battery level)
      Minimum Possible Setting: 0x00000002
      Maximum Possible Setting: 0x00000064
      Possible Settings increment: 0x00000001
      Possible Settings units: %
    Current AC Power Setting Index: 0x00000002
    Current DC Power Setting Index: 0x00000002

There have been a few suggestions to use the powercfg command to try to get hints as to the cause. As yet, the right option for that command is still being sought. The help for powercfg is:

POWERCFG <command line options>
Description:
  This command line tool enables users to control the power settings
  on a system.

Parameter List:
  -LIST, -L   Lists all power schemes in the current user's environment.

              Usage: POWERCFG -LIST

  -QUERY, -Q  Displays the contents of the specified power scheme.

              Usage: POWERCFG -QUERY <SCHEME_GUID> <SUB_GUID>

              <SCHEME_GUID>  (optional) Specifies the GUID of the power scheme
                             to display, can be obtained by using powercfg -l.
              <SUB_GUID>     (optional) Specifies the GUID of the subgroup
                             to display.  Requires a SCHEME_GUID to be provided.

              If neither SCHEME_GUID or SUB_GUID are provided, the settings
              of the current user's active power scheme are displayed.
              If SUB_GUID is not specified, all settings in the specified 
              power scheme are displayed.

  -CHANGE, -X Modifies a setting value in the current power scheme.

              Usage: POWERCFG -X <SETTING> <VALUE>

              <SETTING>   Specifies one of the following options:
                          -monitor-timeout-ac <minutes>
                          -monitor-timeout-dc <minutes>
                          -disk-timeout-ac <minutes>
                          -disk-timeout-dc <minutes>
                          -standby-timeout-ac <minutes>
                          -standby-timeout-dc <minutes>
                          -hibernate-timeout-ac <minutes>
                          -hibernate-timeout-dc <minutes>

              Example:
                  POWERCFG -Change -monitor-timeout-ac 5

              This would set the monitor idle timeout value to 5 minutes
              when on AC power.

  -CHANGENAME Modifies the name of a power scheme and optionally it's 
              description.

              Usage: POWERCFG -CHANGENAME <GUID> <name> <scheme description> 

              If the description is omitted only the name will be changed.

  -DUPLICATESCHEME 
              Duplicates the specified power scheme.  The resulting 
              GUID which represents the new scheme will be displayed.

              Usage: POWERCFG -DUPLICATESCHEME <GUID> <destination GUID>

              <GUID>  Specifies a scheme GUID obtained by using the powercfg -l.

              If <destination GUID> is omitted, a new GUID will be
              created for the duplicated scheme.

  -DELETE, -D Deletes the power scheme with the specified GUID.

              Usage: POWERCFG -DELETE <GUID>

              <GUID>  obtained by using the LIST parameter.

  -DELETESETTING 
              Deletes a power setting.

              Usage: POWERCFG -DELETESETTING <SUB_GUID> <SETTING_GUID> 

              <SUB_GUID>      Specifies the subgroup GUID.
              <SETTING_GUID>  Specifies the power setting guid.

  -SETACTIVE, -S 
              Makes the specified power scheme active on the system.

              Usage: POWERCFG -SETACTIVE <SCHEME_GUID>

              <SCHEME_GUID>  Specifies the scheme guid.

  -GETACTIVESCHEME 
              Retrieve the currently active power scheme.

              Usage: POWERCFG -GETACTIVESCHEME 

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

              Usage: POWERCFG -SETACVALUEINDEX <SCHEME_GUID> <SUB_GUID>
                                               <SETTING_GUID> <SettingIndex>

              <SCHEME_GUID>   Specifies a power scheme GUID and may be
                              obtained by using PowerCfg /L.
              <SUB_GUID>      Specifies a subgroup of power setting GUID and may
                              be obtained by using "PowerCfg /Q."
              <SETTING_GUID>  Specifies an individual power setting GUID and may
                              be obtained by using "PowerCfg /Q".
              <SettingIndex>  Specifies which of the list of of possible values
                              this power setting will be set to.

              Example:
                  POWERCFG -SetAcValueIndex <GUID> <GUID> <GUID> 5
                  This would set the power setting's AC value to the 5th entry
                  in the list of possible values for this power setting.

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

              Usage: POWERCFG -SETDCVALUEINDEX <SCHEME_GUID> <SUB_GUID>
                                               <SETTING_GUID> <SettingIndex>
              <SCHEME_GUID>   Specifies a power scheme GUID and may be
                              obtained by using PowerCfg /L.
              <SUB_GUID>      Specifies a subgroup of power setting GUID and may
                              be obtained by using "PowerCfg /Q."
              <SETTING_GUID>  Specifies an individual power setting GUID and may
                              be obtained by using "PowerCfg /Q".
              <SettingIndex>  Specifies which of the list of possible values
                              this setting will be set to.

              Example:
                  POWERCFG -SetDcValueIndex <GUID> <GUID> <GUID> 5
                  This would set the power setting's DC value to the 5th entry
                  in the list of possible values for this power setting.

  -HIBERNATE, -H
              Enables-Disables the hibernate feature.  Hibernate timeout is not
              supported on all systems.

              Usage: POWERCFG -H <ON|OFF>
                     POWERCFG -H -Size <PercentSize>
              -Size  Specifies the desired hiberfile size in percentage of the
                     total memory. The default size cannot be smaller than 50.
                     This switch will also enable the hiberfile automatically.

  -AVAILABLESLEEPSTATES, -A  
              Reports the sleep states available on the system
              Attempts to report reasons why sleep states are unavailable.

  -DEVICEQUERY
              Return a list of devices that meet the specified criteria.

              Usage: POWERCFG -DEVICEQUERY <queryflags>

              <queryflags>  Secifies one of the following criteria:

              wake_from_S1_supported  Return all devices that support waking the
                                      system from a light sleep state.
              wake_from_S2_supported  Return all devices that support waking the
                                      system from a deeper sleep state.
              wake_from_S3_supported  Return all devices that support waking the 
                                      system from the deepest sleep state.
              wake_from_any           Return all devices that support waking the 
                                      system from any sleep state.
              S1_supported            List devices supporting light sleep.
              S2_supported            List devices supporting deeper sleep.
              S3_supported            List devices supporting deepest sleep.
              S4_supported            List devices supporting hibernation.
              wake_programmable       List devices that are user-configurable
                                      to wake the system from a sleep state.
              wake_armed              List devices that are currently configured
                                      to wake the system from any sleep state.
              all_devices             Return all devices present in the system.
              all_devices_verbose     Return verbose list of devices.
              Example:
                  POWERCFG -DEVICEQUERY wake_armed

  -DEVICEENABLEWAKE
              Enable the device to wake the system from a sleep state.

              Usage: POWERCFG -DEVICEENABLEWAKE <devicename>

              <devicename>  Specifies a device retrieved using
                            "PowerCfg -DEVICEQUERY wake_programmable".

              Example:
                  POWERCFG -DEVICEENABLEWAKE
                                       "Microsoft USB IntelliMouse Explorer"

  -DEVICEDISABLEWAKE <devicename> disable the device from waking the system
              Disable the device from waking the system from a sleep state

              Usage: POWERCFG -DEVICEDISABLEWAKE 

              <devicename>  Specifies a device retrieved using
                            "PowerCfg -DEVICEQUERY wake_armed".

  -IMPORT     Imports all power settings from the specified file.

              Usage: POWERCFG -IMPORT <filename> <GUID> 

              <filename>  Specify a fully-qualified path to a file generated by
                          using "PowerCfg -EXPORT parameter".
              <GUID>      (optional) The settings are loaded into a power scheme
                          represented by this GUID. If not supplied, powercfg
                          will generate and use a new GUID

              Example:
                  POWERCFG -IMPORT c:\scheme.pow

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

              Usage: POWERCFG -EXPORT <filename> <GUID> 

              <filename>  Specify a fully-qualified path to a destination file.
              <GUID>      specifies a power scheme GUID and may be obtained by
                          using "PowerCfg /L"

              Example:
                  POWERCFG -EXPORT c:\scheme.pow
                                   381b4222-f694-41f0-9685-ff5bb260df2e

  -LASTWAKE   Reports information about what woke the system from the last
              sleep transition

  -HELP, -?   Displays information on command-line parameters.

  -ALIASES    Displays all aliases and their corresponding GUIDs.
              The user may use these aliases in place of any GUID on
              the commandline.

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

              Usage: POWERCFG -SETSECURITYDESCRIPTOR <GUID|ACTION> <SDDL>

              <GUID>       Specifies a power scheme or a power setting GUID.
              <ACTION>     Can be one of the following strings:
                           ActionSetActive, ActionCreate, ActionDefault
              <SDDL>       Specifies a valid security descriptor string in SDDL
                           format. Call POWERCFG -GETSECURITYDESCRIPTOR to see
                           an example SDDL STRING.

  -GETSECURITYDESCRIPTOR
              Gets a security descriptor associated with a specified 
              power setting, power scheme, or action.

              Usage: POWERCFG -GETSECURITYDESCRIPTOR <GUID|ACTION> 
              <GUID>       Specifies a power scheme or a power setting GUID.
              <ACTION>     Can be one of the following strings:
                           ActionSetActive, ActionCreate, ActionDefault

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

  -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. 

              Usage: POWERCFG -REQUESTSOVERRIDE <CALLER_TYPE> <NAME> <REQUEST> 
              <CALLER_TYPE>    Specifies one of the following caller type:
                               PROCESS, SERVICE, DRIVER. This is obtained by 
                               calling the POWERCFG -REQUESTS command. 
              <NAME>           Specifies the caller name. This is the name 
                               returned from calling POWERCFG -REQUESTS command.
              <REQUEST>        Specifies one or more of the following Power
                               Request Types: Display, System, Awaymode.
              Example:
                  POWERCFG -REQUESTSOVERRIDE PROCESS wmplayer.exe Display System

  -ENERGY
              Analyze the system for common energy-efficiency and battery life
              problems. The ENERGY command should be used when the computer is
              idle and with no open programs or documents. The ENERGY command
              will generate an HTML report file in the current path. The ENERGY
              command supports the following optional parameters:

              Usage: POWERCFG -ENERGY [-OUTPUT <FILENAME>] [-XML]
                                      [-DURATION <SECONDS>]
                     POWERCFG -ENERGY -TRACE [-D <FILEPATH>]
                                             [-DURATION <SECONDS>]
              -OUTPUT <FILENAME>   - Specify the path and filename to store the
                                     energy report HTML file.
              -XML                 - Format the report file as XML.
              -TRACE               - Record system behavior and do not perform
                                     analysis. Trace files will be generated in
                                     the current path unless the -D parameter
                                     is specified.
              -D <FILEPATH>        - Specify the directory to store trace data.
                                     May only be used with the -TRACE parameter.
              -DURATION <SECONDS>  - Specify the number of seconds to observe
                                     system behavior.  Default is 60 seconds.
  -WAKETIMERS
              Enumerate the active wake timers. If enabled, the expiration of a
              wake timer wakes the system from sleep and hibernate states.
windows-7
power-options
asked on Super User Jul 16, 2017 by user36800 • edited Jul 20, 2017 by user36800

1 Answer

0

You might also be in a situation where Hibernation is enabled, however hibernation may at times become temporarily disabled, such as in the case if the system believes there won't be enough disk space for the hibernation file.

(Also, another really dead simple way to check if Hibernation is likely to happen is to see if it is an option in the power down menu. You might notice the hibernation option appearing and disappearing if you've got what Windows considers to be disk space issues in terms of its Hiberfile space requirements.)

Separately, if the system is attempting to hibernate and then the power is cut (because power ran out before hibernation was completed), then when you boot Windows up again it will go through the process of an improper shutdown. So in that scenario I would also encourage you to increase your critical threshold percentage.

answered on Super User Jul 17, 2017 by coder1000

User contributions licensed under CC BY-SA 3.0