Назад | Перейти на главную страницу

Управление параметрами мощности

По разным причинам мы хотим, чтобы компьютеры наших клиентов не спали при подключении к сети переменного тока. Мы выполняли следующий сценарий с умеренным успехом:

powercfg /change standby-timeout-ac 0

Однако скрипт не работает на многих компьютерах (включая компьютеры, не входящие в домен) со следующим сообщением об ошибке:

Для этой схемы или параметра питания существуют параметры переопределения групповой политики.

Я понимаю, что это можно легко решить с помощью GPO, но это неосуществимое решение, поскольку многие наши клиенты - это малые предприятия без домена. Есть ли способ сделать powercfg переопределить локальный GPO?

Это либо «нет» с «но», либо «да» с «однако».

Сначала мы воспользуемся подходом «нет» - нет, групповые политики отменяют конфигурации, сделанные приложениями, а не наоборот, и это сделано намеренно. Если очень хочешь, с помощью некоторого творческого применения списков контроля доступа безопасности к соответствующим ключам реестра вы можете запретить SYSTEM от возможности применять групповую политику, что позволяет эффективно переопределить их с помощью приложения ... но, это действительно плохая идея.

Другими словами, да, поскольку групповые политики - это просто записи реестра, вы можете изменить их по своему усмотрению с помощью выбранного редактора реестра и поставить себя в действительно неудобное состояние, когда вы эффективно переопределите групповую политику, предотвращая SYSTEM от доступа к разделам реестра, которые являются рассматриваемой групповой политикой. Однако есть гораздо лучший подход к проблеме - настроить рассматриваемую групповую политику. (Да, локальные групповые политики можно редактировать так же, как и групповые политики домена.)

В этом случае вы можете изменить настройку с помощью редактора локальной групповой политики (оснастка MMC)., но похоже, что вы ищете вариант со сценарием, который также возможен. Вызов reg.exe из вашего скрипта или командной строки, и пусть он запишет соответствующее значение в правильный ключ. В этом случае вам нужен ключ в HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power, названный HibernateEnabled, с REG_DWORD тип значения 0.

Должно выглядеть примерно так:

REG ADD HKLM \ SYSTEM \ CurrentControlSet \ Control \ Power / v HibernateEnabled / t REG_DWORD / d 0

Это отключит спящий режим, и, если это будет сделано после запуска конфликтующей групповой политики, перезапишет любое значение, установленное групповой политикой. Это, конечно, вероятно, не идеально, поскольку вам придется запускать это каждый раз при загрузке компьютера, и вы хотите отключить спящий режим только при питании от сети переменного тока, поэтому вы, вероятно, захотите программно отредактировать групповую политику в пределах реестр. Самый простой способ найти соответствующий ключ reg - изменить этот параметр с помощью редактора локальной групповой политики во время работы ProcMon и использовать его, чтобы показать вам только что измененный параметр групповой политики..

(Используя графический интерфейс, он находится в Computer Configuration\Administrative Templates\System\Power Management\Sleep Settings.)

После того, как вы использовали ProcMon, нашли ключ, который вам нужен, и знаете, какое значение его нужно установить, вы можете подключить его к reg.exe, как в приведенном выше примере, чтобы настроить локальную групповую политику, как вы укажете. Будучи командой командной строки, вы получите то, что можете использовать вручную или вставить в сценарий, в зависимости от ситуации.