2015-09-14 20:06:52 +0000 2015-09-14 20:06:52 +0000
245
245

Parar conclusivamente os temporizadores de despertar do ambiente de trabalho do Windows 10

Como se impede um ambiente de trabalho Windows 10 de acordar do estado de energia adormecido/hibernado sem intervenção do utilizador?

Para muitos utilizadores isto não será um problema mas, se dormir no mesmo quarto que o seu PC, então ter a sua máquina a acordar às 3:30 da manhã para descarregar actualizações é irritante.

Respostas (3)

377
377
377
2015-09-14 20:39:07 +0000

Resumo

Há uma série de coisas que podem afectar isto. Estou ciente de que existem posts em todo este site detalhando várias formas diferentes de abordar a questão; este post pretende consolidá-los e acrescentar a minha própria visão sobre a questão como alguém afectado por ela.

A correcção delineada no Passo 2 também pode ser usada para impedir o Windows 10 de reiniciar a máquina após a instalação das Actualizações do Windows.

Esta correcção funciona também para a Fall Update (1709). Terá de desactivar novamente a tarefa ‘Reboot’ e reconfigurar as permissões de segurança, no entanto, porque o processo de actualização a substitui.

Passo 1: Desactivar os temporizadores de despertar para todos os perfis de potência

Lazy tech-bloggers fá-lo-iam acreditar que este é o fim da sua pesquisa. Embora seja verdade que este passo irá eliminar alguns desligamentos errantes, há uma série de definições e configurações, particularmente no Windows 10, que não respeitam esta definição, independentemente da intervenção do utilizador. Ir para o Painel de Controlo → Opções de Alimentação. A partir daqui, escolha o perfil de potência que estiver primeiro na lista e desactive os ‘Wake timers’. Trabalhar em todos os perfis.

Graças ao utilizador StackExchange olee22 pela imagem.

No Windows 10, recomenda-se vivamente que conserte esta configuração ** para todos os perfis de potência** , e não apenas para aquele que escolheu utilizar. Várias faculdades do Windows irão utilizar perfis diferentes; isto melhora as suas hipóteses de não ser acordado.

Passo 2: Desactivar a tarefa reboot programada

Nota: Criei um script PowerShell que pode ser usado para impedir o seu sistema Windows 10 de reiniciar. Pode encontrá-lo aqui: github.com/seagull/disable-automaticrestarts .

A pasta de tarefas agendadas do UpdateOrchestrator do Windows 10 contém uma tarefa chamada “reiniciar”. Esta tarefa irá acordar o seu computador para instalar actualizações, independentemente de estarem ou não disponíveis. A simples remoção da sua permissão para acordar o computador não é suficiente; o Windows irá apenas editá-lo para se dar novamente permissão depois de deixar o Agendador de Tarefas.

A partir do seu Painel de Controlo, introduza Ferramentas Administrativas, depois veja o seu Agendador de Tarefas.

Esta é a tarefa que deseja - em Biblioteca do Agendador de Tarefas → Microsoft → Windows → UpdateOrchestrator. As coisas mais importantes que deseja fazer são:

A partir daqui, terá de alterar as permissões da tarefa para que o Windows não a possa molestar. A tarefa está localizada em C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator. Chama-se Reboot sem uma extensão de ficheiro. Clique com o botão direito do rato, introduza as propriedades e faça-se o dono . Finalmente, configure-o de modo a que seja mostrado o seguinte:

Aqui o ficheiro é mostrado com permissões só de leitura para o SYSTEM. Faça-o de modo a que nenhuma conta tenha acesso de escrita, nem mesmo a sua própria (pode sempre alterar as permissões mais tarde, se necessário). Certifique-se também de que desactiva quaisquer permissões herdadas para o ficheiro a partir do botão Avançado neste ecrã, para anular quaisquer permissões existentes na pasta raiz. Isto irá parar 100% as janelas de mexer nas suas alterações depois de as ter implementado.

Uma vez que isto tenha sido definido, não precisará de se preocupar mais com essa tarefa agendada.

Se não tiver as permissões para alterar UpdateOrchestrator Tarefas

Alterar as tarefas UpdateOrchestrator requer agora SYSTEM permissões, nem administrator nem TrustedInstaller permissões. Uma das formas de contornar isto é por :

  1. instalar o próprio PsTools da Microsoft.
  2. Abertura do Prompt de Comando como e administrador e cd na sua pasta local PsTools.
  3. Executando: psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc
  4. Ir ao UpdateOrchestrator e desactivar a(s) tarefa(s) Reboot, como mencionado anteriormente.

Nota para o Windows 1709 (Fall Creators’ Update)

O processo de instalação do Windows altera as permissões dos ficheiros, por isso certifique-se de passar novamente por este guia após a actualização.

Ouvi relatos de que é feita uma nova tarefa chamada AC Power Install que requer os mesmos passos aplicados a ela, mas não vi esta tarefa produzida no meu próprio dispositivo após a instalação da actualização 16299.192 (2018-01 Meltdown patch), pelo que não posso aconselhar com absoluta certeza. Os mesmos passos que foram executados acima devem funcionar em qualquer tarefa que tenha sido introduzida.

Passo 3: Verificar Temporizadores de Despertar no PowerShell

Você desactivou a funcionalidade do temporizador de despertar, mas o Windows 10 tem o hábito de não respeitar essa configuração, por isso, para ser seguro, vamos executar um comando PowerShell para eliminar todas as tarefas que possam, de forma viável, despertar o seu PC. Abra um prompt de comando PowerShell Administrativo (Iniciar, digite ‘Powershell’, Ctrl+Shift+Enter) e coloque este comando na janela:

Get-ScheduledTask | where {$_.settings.waketorun}

Percorrer todas as tarefas que ele lista e remover a sua permissão para acordar o seu computador. Não deve precisar de se preocupar com as permissões como fizemos com Reboot; esse foi um caso isolado.

Passo 4: Verifique que hardware pode acordar o seu PC

Muito USB O hardware, quando ligado, tem a capacidade de acordar o seu PC (os teclados fazem-no frequentemente quando as teclas são premidas, por exemplo); o wake-on-LAN também é tipicamente um problema neste cenário. Para os não iniciados, uma característica comum e útil do hardware moderno é chamada ‘Wake on LAN’. Se o seu dispositivo estiver ligado a uma rede local através de um cabo Ethernet com fios (não funciona para Wi-Fi), pode enviar comunicações através dele, que acordarão o seu PC quando for recebido. É uma funcionalidade que utilizo frequentemente, mas que deve ser alinhada, pois o seu comportamento por defeito é demasiado zeloso.

Insira o seguinte comando num prompt de comando administrativo:

powercfg -devicequery wake_armed

A partir daqui, encontre os dispositivos no seu Gestor de Dispositivos (Painel de Controlo) e, sob o separador Gestão de Energia, remova a sua capacidade de acordar o seu computador. Se tiver cartões de interface de rede para os quais deseja manter o Wake-on-LAN, active este dispositivo apenas se este receber um pacote mágico em vez de acordar para todo o tráfego enviado pelo seu caminho.

Passo 5: Verifique a Política de Grupo apenas para ter a certeza absoluta

Clique com o botão direito do rato no seu menu Iniciar e seleccione Executar. Digite GPEdit.MSC&. Encontre a seguinte configuração em Configuração do Computador → Modelos Administrativos → Componentes do Windows → Actualizações do Windows → Activar o Windows Update Power Management para acordar automaticamente o sistema para instalar actualizações agendadas. Faça duplo clique e defina-o como Desactivado.

Passo 6: Desactivar o despertar da sua máquina para manutenção automática

Alguém na Microsoft tem sentido de humor para este. Se for acordado à noite pelo seu PC, a única coisa que quer ouvir mais do que qualquer outra coisa é o disco rígido a triturar e a moer, pois faz uma desfragmentação nocturna. Desactive esta funcionalidade ao encontrar a secção de Segurança e Manutenção do Painel de Controlo. A partir daí, expanda a Manutenção e procure a ligação para Alterar configurações de Manutenção.

Defina o tempo para algo mais sociável (7PM está bem) e desactive a capacidade da máquina de se despertar para a tarefa.

26
26
26
2016-04-20 22:10:26 +0000

Utilizo agora este script para Acabar de forma conclusiva os temporizadores de despertar do Windows 10 desktop:

# disable wake for enabled scheduled tasks that are allowed to wake
Get-ScheduledTask |
?{ $_.Settings.WakeToRun -eq $true -and $_.State -ne 'Disabled' } |
%{
    write-host $_
    $_.Settings.WakeToRun = $false;
    Set-ScheduledTask $_
}

# disable wake for devices that are allowed to wake (list of wake capable devices: powercfg -devicequery wake_from_any)
powercfg -devicequery wake_armed |
%{
    write-host $_
    if ($_ -notmatch '^(NONE)?$')
    { powercfg -devicedisablewake $_ }
}

# disable wake timers for all power schemes
powercfg -list | Select-String 'GUID' |
%{
    write-host $_
    $guid = $_ -replace '^.*:\s+(\S+?)\s+.*$', '$1'
    powercfg -setdcvalueindex $guid SUB_SLEEP RTCWAKE 0
    powercfg -setacvalueindex $guid SUB_SLEEP RTCWAKE 0
}

# disable wake for automatic updates and for automatic maintenance
'HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\AUPowerManagement', 
'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\Maintenance\WakeUp' |
%{
    write-host $_
    $key = split-path $_
    $name = split-path $_ -leaf
    $type = 'DWORD'
    $value = 0
    if (!(Test-Path $key))
    { New-Item -Path $key -Force | Out-Null }
    if ((Get-ItemProperty $key $name 2>$null).$name -ne $value)
    { Set-ItemProperty $key $name $value -type $type }
}

Como pode ver, ele aborda mais ou menos todos os passos mencionados em this responder, excepto para as permissões de ficheiros de tarefas agendadas. Contudo, uma vez que pretendo silenciosamente correr este script em cada desbloqueio/logão, espero que isto não seja de todo um problema.

11
11
11
2016-11-18 02:33:02 +0000

Achei a outra resposta incrivelmente útil, e comentaria apenas se pudesse, mas queria contribuir com um software que rapidamente escrevi para ajudar nos passos 3 & 4 aqui encontrados: https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download

Esperemos que seja de alguma utilidade para algumas pessoas.

Pode ver isto aparecer e ter de clicar em “Mais informação” e depois em “Run anyway” (se não tiver a certeza, sinta-se à vontade para verificar o código fonte, está no github depois de tudo):