Gerenciando opções de energia

2

Por várias razões, queremos que os computadores dos nossos clientes não durmam quando estão no AC. Temos executado o seguinte script com sucesso moderado:

powercfg /change standby-timeout-ac 0

No entanto, o script falha em vários computadores (incluindo computadores que não estão em um domínio) com a seguinte mensagem de erro:

Group policy override settings exist for this power scheme or power setting.

Eu percebo que isso poderia ser facilmente resolvido com um GPO, mas essa não é uma solução viável, já que muitos de nossos clientes são pequenas empresas sem um domínio. Existe uma maneira de fazer com que powercfg substitua o GPO local?

    
por MikeTG 07.04.2015 / 17:31

1 resposta

0

É "não", com um "mas" ou "sim", com um "no entanto".

Vamos adotar a abordagem "não" primeiro - não, as políticas de grupo anulam as configurações feitas pelos aplicativos, e não o contrário, e isso é por design. Se você realmente quiser, com alguma aplicação criativa de ACLs de segurança para as chaves de registro relevantes, você pode proibir SYSTEM de poder aplicar a política de grupo , efetivamente permitindo que você as sobrescreva com um aplicativo ... mas , isso é muito ruim ideia.

Em outras palavras, sim, como as diretivas de grupo são apenas entradas de registro, você pode alterá-las para o conteúdo do seu coração com o editor de registro de sua escolha, e se colocar em um estado realmente constrangedor onde você efetivamente substitui a diretiva de grupo impedindo SYSTEM de acessar as chaves de registro que são a política de grupo em questão. No entanto, há uma abordagem muito melhor para o problema, que é configurar a política de grupo em questão. (Sim, as políticas de grupo local são tão editáveis quanto as políticas de grupo de domínio.)

Nesse caso, você pode editar a configuração com o Editor de Diretiva de Grupo Local (snap-in do MMC) , mas parece que você está após uma opção de script, o que também é possível. Chame reg.exe do seu script ou de uma linha de comando e peça-lhe que escreva o valor apropriado para a chave correta. Nesse caso, você deseja a chave em HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power , denominada HibernateEnabled , com um tipo de valor REG_DWORD de 0 .

Deve ser parecido com o abaixo:

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

Isso desativará a hibernação e, se feito após a execução de uma política de grupo conflitante, substituirá qualquer valor definido pela política de grupo. Isso, é claro, provavelmente não é o ideal, já que você teria que executá-lo toda vez que o computador inicializasse, e você só quer desabilitar a hibernação quando estiver usando energia AC, então você provavelmente desejaria editar programaticamente a política de grupo dentro do sistema. registro. A maneira mais fácil de encontrar a chave reg apropriada seria alterar essa configuração com o Editor de Diretiva de Grupo Local, enquanto o ProcMon está em execução, e usá-la para mostrar a configuração de política de grupo que você acabou de modificar .

(Usando a GUI, ela é encontrada em Computer Configuration\Administrative Templates\System\Power Management\Sleep Settings .)

Uma vez que você usou a ProcMon encontrou a chave que você está procurando e sabe para qual valor configurá-la, você pode conectá-la a reg.exe , como no exemplo que dei acima para configurar a diretiva de grupo local especificamos. Sendo um comando de linha de comando, você obterá algo que poderá usar manualmente ou colar em um script, conforme a situação exigir.

    
por 07.04.2015 / 19:46