Powercfg дает возможность устанавливать определенные настройки, такие как monitor-timeout-ac
и standby-timeout-dc
используя powercfg -change <setting> <value>
. Можно ли запросить текущие значения этих настроек? Я просмотрел текст справки, но не увидел пути через команду powercfg
. Возможно, есть другая команда, которая может предоставить текущее состояние?
4 ответа
Для запроса определенных разделов, касающихся указанных вами настроек, выполните следующие действия:
powercfg -list
для получения списка текущих идентификаторов GUID плана электропитания. Примечание / Скопируйте GUID для плана, который вы хотите запросить.powercfg -aliases
для получения списка GUID для подразделов плана. Примечание / Скопируйте GUID для "SUB_SLEEP" и "SUB_VIDEO".powercfg -query <GUID of power plan> <GUID of sub-section>
.
Пример вывода из подраздела "SUB-SLEEP":
C:\Windows\system32>powercfg -query 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 238c9fa8-0aad-41ed-83f4-97be242c8f20
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance)
Subgroup GUID: 238c9fa8-0aad-41ed-83f4-97be242c8f20 (Sleep)
Power Setting GUID: 29f6c1db-86da-48c5-9fdb-f2b67b1f44da (Sleep after)
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)
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)
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)
Possible Setting Index: 000
Possible Setting Friendly Name: Disable
Possible Setting Index: 001
Possible Setting Friendly Name: Enable
Current AC Power Setting Index: 0x00000001
Current DC Power Setting Index: 0x00000001
Пример раздела "SUB_VIDEO":
C:\Windows\system32>powercfg -query 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c 7516b95
f-f776-4464-8c53-06167f40cc99
Power Scheme GUID: 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c (High performance)
Subgroup GUID: 7516b95f-f776-4464-8c53-06167f40cc99 (Display)
Power Setting GUID: 17aaa29b-8b43-4b94-aafe-35f64daaf1ee (Dim display after)
Minimum Possible Setting: 0x00000000
Maximum Possible Setting: 0xffffffff
Possible Settings increment: 0x00000001
Possible Settings units: Seconds
Current AC Power Setting Index: 0x00000258
Current DC Power Setting Index: 0x0000012c
Power Setting GUID: 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e (Turn off display after)
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: 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: 0x0000001e
Current DC Power Setting Index: 0x0000001e
Я знаю, что это старый вопрос, но не было ответа, который отвечал бы моим потребностям. После долгих поисков и изучения выходных данных я разработал следующий сценарий для удовлетворения своих потребностей. Он получает время для сна (когда он подключен к сети переменного тока) и время для спящего режима (когда он подключен к сети переменного тока) и возвращает их обоих. Мне понадобились эти значения для моего сценария, но вы можете посмотреть на вывод $options
и использовать этот код в качестве шаблона, чтобы получить любые другие данные, которые вам могут понадобиться:
#Get GUID of active plan
$GUID = (((Get-CimInstance -classname Win32_PowerPlan -Namespace "root\cimv2\power" | where {$_.IsActive -eq "true"}).InstanceID) -split("\\"))[1]
#Cut {} off of string at beginning and end of GUID
$GUID = $GUID.Substring(1, $GUID.Length-2)
#Get a list of all options for this plan
$Options = powercfg -query $GUID
$index = 0
#Find index of line that contains Sleep Settings
For($i=0; $i -lt $Options.Length; $i++)
{
$line = $Options[$i]
if($line.ToLower() -like "*sleep after*")
{
$index = $i
break
}
}
#AC Setting is 6 lines later
$sleepSetting = $Options[$index + 6]
#trim off the beginning of the string, leaving only the value
$sleepSettingTrimmed = $sleepSetting.Substring($sleepSetting.IndexOf(":")+2)
#output should now be "0x00000000" if off, or another number representing minutes
#Find index of line that contains Hibernate Settings
For($i=0; $i -lt $Options.Length; $i++)
{
$line = $Options[$i]
if($line.ToLower() -like "*hibernate after*")
{
$index = $i
break
}
}
#AC Setting is 6 lines later
$hibernateSetting = $Options[$index + 6]
#trim off the beginning of the string, leaving only the value
$hibernateSettingTrimmed = $hibernateSetting.Substring($hibernateSetting.IndexOf(":")+2)
echo "$sleepSettingTrimmed $hibernateSettingTrimmed"
Да. Удивительно, но он использует следующие настройки:
powercfg -query
Вот выдержка из команды powercfg -? |more
:
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.
Надеюсь это поможет. :)
# get current power sleep time setting
# I know of no other way to return the single number of the sleep time
# (powershell)
# run script with "powershell -file" to get errorlevel set right
# (Balanced plan) (Sleep section)
# can't do (Sleep after subsection guid) too?
$result = powercfg -query 381b4222-f694-41f0-9685-ff5bb260df2e 238c9fa8-0aad-41ed-83f4-97be242c8f20
# line 8, 7th word, in hex, cast to decimal
[int64]$sleeptime = ($result[7] -split ("\s+"))[6]
# return sleep time in minutes in errorlevel
exit $sleeptime/60