Como você impede que uma área de trabalho do Windows 10 saia do estado de suspensão/hibernação sem intervenção do usuário?
Para muitos usuários, isso não será um problema, mas, se você dorme no mesmo quarto que seu PC, é irritante ter sua máquina acordando às 3h30 para baixar atualizações.
Responder1
Resumo
Abril de 2022: criei um novo script do PowerShell que desabilitará as tarefas agendadas do Windows para ativar um dispositivo automaticamente. Use-o junto com as outras partes deste guia. Baixe em: https://github.com/seagull/disable-scheduledWaking
Há uma série de coisas que podem afetar isso. Estou ciente de que há postagens em todo este site detalhando várias maneiras diferentes de abordar o problema; esta postagem tem como objetivo consolidá-los e adicionar minha própria visão sobre o problema como alguém afetado por ele.
A correção descrita na Etapa 2 também pode ser usada para impedir que o Windows 10 reinicie a máquina após instalar as atualizações do Windows.
Essa correção também funciona para a atualização de outono (1709). Você precisará desabilitar a tarefa 'Reinicializar' novamente e reconfigurar as permissões de segurança, porque o processo de atualização a substitui.
Etapa 1: desative os despertadores para todos os perfis de energia
Blogueiros de tecnologia preguiçosos querem que você acredite que este é o fim de sua pesquisa. Embora seja verdade que esta etapa eliminará alguns desligamentos errôneos, há uma série de definições e configurações, especialmente no Windows 10, que não respeitam essa configuração, independentemente da intervenção do usuário. Vá para Control Panel→ Power Options. A partir daqui, escolha o perfil de energia que estiver em primeiro lugar na lista e desative os 'Temporizadores de despertar'. Trabalhe em todos os perfis.
Agradecimentos ao usuário StackExchangeolee22para a imagem.
No Windows 10, é altamente recomendável que você corrija esta configuraçãopara todos os perfis de potência, não apenas aquele que você escolheu usar. Várias faculdades do Windows usarão perfis diferentes; isso aumenta suas chances de não ser acordado.
Etapa 2: desative a reboot
tarefa agendada indisciplinada
A pasta de tarefas agendadas do UpdateOrchestrator do Windows 10 contém uma tarefa chamada “reinicializar”. Esta tarefa ativará seu computador para instalar atualizações, independentemente de haver alguma disponível ou não. Simplesmente remover sua permissão para ativar o computador não é suficiente; O Windows irá apenas editá-lo para obter permissão novamente depois que você sair do Agendador de tarefas.
Em seu Control Panel, entre Administrative Toolse visualize seu arquivo Task Scheduler.
Esta é a tarefa que você deseja - em Task Scheduler Library→ Microsoft→ Windows→ UpdateOrchestrator. As coisas mais importantes que você deseja fazer são:
A partir daqui, você precisará alterar as permissões da tarefa para que o Windows não possa molestá-la. A tarefa está localizada em C:\Windows\System32\Tasks\Microsoft\Windows\UpdateOrchestrator
. É chamado Reboot
sem extensão de arquivo. Clique com o botão direito, entre nas propriedades etorne-se o dono. Por fim, configure-o para que seja mostrado o seguinte:
Aqui o arquivo é mostrado com permissões somente leitura para SYSTEM. Faça com que nenhuma conta tenha acesso de gravação, nem mesmo a sua (você sempre pode alterar as permissões mais tarde, se necessário). Certifique-se também de desabilitar quaisquer permissões herdadas para o arquivo no Advancedbotão nesta tela, para substituir quaisquer permissões existentes na pasta raiz. Isso impedirá 100% que o Windows mexa em suas alterações depois de implementá-las.
Depois de definido, você não precisará mais se preocupar com a tarefa agendada.
Se você não tiver permissões para alterar UpdateOrchestrator
tarefas
Alterar as
UpdateOrchestrator
tarefas do agora requerSYSTEM
permissões,administrator
nemTrustedInstaller
permissões.
Uma das maneiras de contornar isso é:
- Instalando o próprio da Microsoft
PsTools
. - Abrindo Command Promptcomo administrador e em sua pasta
cd
local .PsTools
- Executando:
psexec.exe -i -s %windir%\system32\mmc.exe /s taskschd.msc
- Acessando
UpdateOrchestrator
e desabilitando aReboot
(s) tarefa(s), conforme mencionado anteriormente.
Nota para Windows 1709 (atualização dos criadores de outono)
O processo de instalação do Windows altera as permissões dos arquivos, portanto, leia este guia novamente após a atualização.
Ouvi relatos de que uma nova tarefa é chamada AC Power Install
e requer as mesmas etapas aplicadas a ela, mas não vi essa tarefa produzida em meu próprio dispositivo após instalar a atualização 16299.192 (patch Meltdown 2018-01), então não posso aconselhar com absoluto certeza. As mesmas etapas executadas acima devem funcionar em qualquer tarefa que tenha sido introduzida.
Etapa 3: verifique os despertadores no PowerShell
Você desativou a funcionalidade do despertador, mas o Windows 10 tem o hábito de não respeitar essa configuração; portanto, para garantir, executaremos um comando do PowerShell para eliminar todas as tarefas que podem, de maneira viável, ativar seu PC. Abra um prompt de comando administrativo do PowerShell (Iniciar, digite 'Powershell', Ctrl+Shift+Enter) e coloque este comando na janela:
Get-ScheduledTask | where {$_.settings.waketorun}
Execute todas as tarefas listadas e remova a permissão para ativar o computador. Você não precisa se preocupar com permissões como fizemos com Reboot
; esse foi um caso periférico.
Etapa 4: verifique qual hardware pode ativar seu PC
Muito hardware USB, quando ativado, tem a capacidade de ativar seu PC (os teclados geralmente fazem isso quando as teclas são pressionadas, por exemplo); wake-on-LAN normalmente também é um problema neste cenário. Para os não iniciados, um recurso comum e útil do hardware moderno é chamado de ‘Wake on LAN’. Se o seu dispositivo estiver conectado a uma rede local por meio de um cabo Ethernet com fio (não funciona para Wi-Fi), você poderá enviar comunicações que ativarão o seu PC quando recebidas. É um recurso que uso com frequência, mas deve ser ajustado, pois seu comportamento padrão é excessivamente zeloso.
Digite o seguinte comando em um prompt de comando administrativo:
powercfg -devicequery wake_armed
A partir daqui, encontre os dispositivos em Device Manager( Control Panel) e, na Power Managementguia, remova a capacidade de ativar o computador. Se você tiver placas de interface de rede para as quais deseja manter o Wake-on-LAN, ative-o Only wake this device if it receives a magic packetem vez de ativar todo o tráfego enviado em sua direção.
Etapa 5: verifique a Política de Grupo apenas para ter certeza absoluta
Clique com o botão direito no menu Iniciar e selecione Run. Digitar GPEdit.MSC
. Encontre a seguinte configuração em Computer Configuration→ Administrative Templates→ Windows Components→ Windows Updates→ Enabling Windows Update Power Managementpara ativar automaticamente o sistema para instalar atualizações agendadas. Clique duas vezes nele e defina-o como Desativado.
Etapa 6: Desative a ativação de sua máquina para manutenção automática
Alguém na Microsoft tem senso de humor para isso. Se você é acordado à noite pelo seu PC, a única coisa que você deseja ouvir mais do que qualquer outra coisa é o disco rígido rangendo e triturando durante a desfragmentação noturna. Desative esse recurso encontrando a Security and Maintenanceseção do arquivo Control Panel. A partir daí, expanda Maintenancee procure o link para Change Maintenance settings.
Defina o horário para algo mais sociável (19h está bom) e desative a capacidade da máquina de acordar para a tarefa.
Responder2
Agora eu uso esse script paraImpedir conclusivamente que os despertadores ativem a área de trabalho do Windows 10:
# 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 você pode ver, ele aborda mais ou menos todas as etapas mencionadas emesseresponda, exceto pelas permissões de arquivo de tarefas agendadas. No entanto, como pretendo silenciosamentecorrereste script em cada desbloqueio/logon, espero que isso não seja um problema.
Responder3
Achei a outra resposta extremamente útil e apenas comentaria se pudesse, mas queria contribuir com um software que escrevi rapidamente para ajudar nas etapas 3 e 4 encontradas aqui:
https://github.com/Omniru/System-Wake-Manager/wiki/Home-&-Download
Espero que seja de alguma utilidade para algumas pessoas.
Você pode ver este pop-up e ter que clicar em "Mais informações" e depois em "Executar mesmo assim" (se não tiver certeza, sinta-se à vontade para verificar o código-fonte, afinal ele está no github):