Windows Group Policy GPO settings

Экран гасит через минуту несмотря на GPO: скрытый параметр Console lock display off timeout

Серверная стойка с мониторами и сетевым оборудованием

Представьте ситуацию: вы тщательно настроили групповые политики, указали «никогда не выключать дисплей», применили GPO ко всем машинам в домене — и всё равно через минуту бездействия экран гаснет. Именно с таким поведением сталкиваются системные администраторы, развёртывающие новые рабочие станции или терминальные серверы Windows. Проблема воспроизводится стабильно, диагностируется нетривиально, а виновник прячется в совершенно неожиданном месте.

Почему GPO «не работает»

В Windows управление питанием разбито на несколько независимых слоёв. Большинство администраторов знакомы с путём Computer Configuration → Policies → Administrative Templates → System → Power Management → Video and Display Settings, где задаётся таймаут отключения дисплея. Эти политики работают корректно — но они управляют только одним сценарием: когда пользователь активно работает за компьютером.

Существует отдельный, гораздо менее известный параметр — Console lock display off timeout. Он отвечает за тайм-аут отключения экрана именно в момент, когда сеанс заблокирован: то есть когда компьютер показывает экран блокировки Windows. По умолчанию это значение равно 1 минуте, и самое главное — оно не отображается в стандартном GUI схемы питания. Вы просто не увидите его в «Электропитании» панели управления, пока не включите его принудительно.

Ключевой момент: GPO на таймаут дисплея управляет одним параметром, а Console lock display off timeout — совершенно другим. Оба независимы. Именно поэтому стандартная политика «никогда не выключать» не даёт эффекта при заблокированном экране.

Как воспроизводится проблема

Типичный сценарий выглядит так:

  1. Администратор настраивает GPO: «Отключить дисплей через (питание от сети): Никогда».
  2. Политика применяется успешно — gpresult /r показывает, что GPO применена.
  3. Пользователь нажимает Win+L или уходит от компьютера — экран блокируется.
  4. Ровно через 1 минуту монитор гаснет, хотя в политике прописано «Никогда».
  5. После разблокировки всё работает нормально — дисплей не гаснет, если сеанс активен.

Это поведение воспроизводится на Windows 10, Windows 11, Windows Server 2016/2019/2022. Особенно часто встречается на новых машинах или после переустановки ОС, когда схема питания ещё не была кастомизирована вручную.

Диагностика: что происходит на самом деле

Прежде чем приступать к исправлению, убедитесь, что проблема именно в Console lock display off timeout, а не в чём-то другом. Выполните в командной строке от имени администратора:

powercfg /query SCHEME_CURRENT SUB_VIDEO

Эта команда выводит текущие значения всех видеопараметров активной схемы питания. Найдите в выводе строки, связанные с Console lock display off timeout:

Подпараметр GUID: 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7
  (Console lock display off timeout)
  Текущее значение питания от сети: 0x0000003c   (60 секунд)

Если видите значение 0x0000003c (это 60 в десятичной, то есть 60 секунд), причина найдена. Параметр по умолчанию равен 1 минуте и не меняется стандартными инструментами управления питанием.

Решение через powercfg

Самый быстрый способ — изменить значение напрямую через утилиту powercfg. Команда выполняется в PowerShell или командной строке с правами администратора.

Установить таймаут в 15 минут (питание от сети)

powercfg /change monitor-timeout-ac 15

Установить таймаут в 15 минут (от батареи)

powercfg /change monitor-timeout-dc 15

Полностью отключить отключение экрана (значение 0 = никогда)

powercfg /change monitor-timeout-ac 0
powercfg /change monitor-timeout-dc 0

Однако эти команды меняют общий таймаут монитора. Для прицельного изменения именно Console lock display off timeout используйте GUID параметра:

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 0
powercfg /setactive SCHEME_CURRENT

Значение 0 означает «никогда». Если нужно задать конкретное количество секунд, укажите его в десятичном виде, например 900 для 15 минут.

Важно: После setacvalueindex обязательно выполните powercfg /setactive SCHEME_CURRENT — без этого изменение не применится к активной схеме питания немедленно.

Включение параметра в GUI схемы питания

По умолчанию Console lock display off timeout скрыт от пользователей и недоступен через «Электропитание → Настройка схемы электропитания». Чтобы сделать его видимым в интерфейсе, выполните в реестре следующее изменение или примените через скрипт:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48C2-BE75-4F3044BE88A7" /v Attributes /t REG_DWORD /d 2 /f

После выполнения команды перейдите в «Электропитание» → «Изменить параметры схемы» → «Изменить дополнительные параметры питания» → раздел «Экран». Теперь там появится пункт «Время ожидания отключения экрана при блокировке консоли» — и вы сможете настраивать его прямо из GUI.

Если нужно скрыть параметр обратно:

REG ADD "HKLM\SYSTEM\CurrentControlSet\Control\Power\PowerSettings\7516b95f-f776-4464-8c53-06167f40cc99\8EC4B3A5-6868-48C2-BE75-4F3044BE88A7" /v Attributes /t REG_DWORD /d 1 /f

Массовое решение через групповую политику

Если нужно применить настройку сразу на все машины домена, правильным решением будет GPO с настройкой реестра. Стандартный путь через «Power Management» в Administrative Templates этот параметр не охватывает, поэтому используем Registry Preferences.

Шаг 1. Откройте Group Policy Management и создайте или отредактируйте нужный GPO

Шаг 2. Перейдите в раздел реестровых предпочтений

Computer Configuration → Preferences → Windows Settings → Registry

Шаг 3. Создайте новый элемент реестра

Шаг 4. Добавьте второй элемент — само значение таймаута

Помимо атрибута видимости, нужно задать и само значение. Для этого через PowerShell Logon Script или второй реестровый элемент GPO выполните:

powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 0
powercfg /setdcvalueindex SCHEME_CURRENT SUB_VIDEO 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 0
powercfg /setactive SCHEME_CURRENT

Этот скрипт можно добавить как Computer Startup Script в том же GPO: Computer Configuration → Windows Settings → Scripts → Startup.

Проверка результата

После применения изменений убедитесь, что всё сработало:

powercfg /query SCHEME_CURRENT SUB_VIDEO

В выводе строка для 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 должна показывать значение 0x00000000 (никогда) или ваше заданное значение в секундах.

Также рекомендуем проверить поведение вживую: заблокируйте экран (Win+L) и подождите более минуты. Если экран не погас — проблема решена.

Справочная таблица GUID параметров схемы питания

Параметр GUID Подгруппа
Console lock display off timeout 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 SUB_VIDEO
Display brightness aded5e82-b909-4619-9949-f5d71dac0bcb SUB_VIDEO
Turn off display after 3c0bc021-c8a8-4e07-a973-6b14cbcb2b7e SUB_VIDEO
Sleep after 29f6c1db-86da-48c5-9fdb-f2b67b1f44da SUB_SLEEP
Hibernate after 9d7815a6-7ee4-497e-8888-515a05f02364 SUB_SLEEP

Дополнительные советы администратору

Сохраняйте и экспортируйте схемы питания

После ручной настройки экспортируйте эталонную схему питания командой:

powercfg /export C:\baseline-power.pow SCHEME_CURRENT

Затем импортируйте её на другие машины через GPO или скрипт:

powercfg /import C:\baseline-power.pow

Это значительно ускоряет развёртывание и исключает повторение проблемы на новых рабочих станциях.

Проверяйте конфликты с энергосберегающими политиками OEM

На некоторых ноутбуках и корпоративных рабочих станциях (особенно Dell, HP, Lenovo) производитель добавляет собственные утилиты управления питанием: Dell Command Power Manager, HP Power Manager, Lenovo Vantage. Эти программы могут переопределять как GPO, так и прямые настройки powercfg. Если проблема возвращается после перезагрузки — ищите конфликт с OEM-утилитами.

Отладка через Event Viewer

Windows фиксирует изменения схемы питания в журнале событий. Для просмотра:

Get-WinEvent -LogName "System" | Where-Object {$_.Id -eq 105 -or $_.Id -eq 107}

Event ID 105 — изменение схемы питания, 107 — выход из сна. Это помогает отследить, когда и что меняет таймауты.

Используйте PowerShell вместо командной строки

Все команды powercfg одинаково работают и в cmd, и в PowerShell. Но в PowerShell удобнее писать скрипты с логированием результата:

$result = powercfg /setacvalueindex SCHEME_CURRENT SUB_VIDEO 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 0
if ($LASTEXITCODE -eq 0) {
    Write-Host "Console lock timeout успешно сброшен" -ForegroundColor Green
    powercfg /setactive SCHEME_CURRENT
} else {
    Write-Host "Ошибка применения параметра" -ForegroundColor Red
}

Итог

Проблема с гаснущим экраном через минуту при заблокированном сеансе — это не баг Windows и не сбой групповых политик. Это намеренно скрытый системный параметр Console lock display off timeout, который живёт в отдельном GUID 8EC4B3A5-6868-48C2-BE75-4F3044BE88A7 схемы питания и не затрагивается стандартными политиками управления дисплеем.

Для разовой машины достаточно двух команд в PowerShell от администратора. Для масштабного развёртывания — GPO Preferences с реестровым ключом и стартовый скрипт. Эталонную схему питания стоит экспортировать и хранить как часть базовой конфигурации рабочей станции в вашей организации.

Если подобные нюансы в инфраструктуре Windows съедают рабочее время вашей команды — IT-аутсорсинг позволяет делегировать администрирование специалистам и сосредоточиться на основном бизнесе.

Нужна помощь специалистов?

ООО «АйТи Фреш» возьмёт это на себя

Не хватает времени или своих специалистов — мы настроим, оптимизируем и возьмём вашу IT-инфраструктуру на постоянное сопровождение. Работаем с юридическими лицами в Москве и регионах. Собственный дата-центр, команда из 8 серверов Dell Xeon Platinum 8280 на базе МТС.

15+лет опыта
25+клиентов
40Gсвоя сеть
24/7поддержка