Faça o PC acordar usando o agendador de tarefas no Win 10 do modo de suspensão

4

No Win 10 Pro, usei o agendador de tarefas para fazer meu PC dormir (não hibernar) à noite, o que funciona bem. Mas estou tentando fazer com que meu PC acorde de manhã, mas sem sorte aqui. Ativei os timers de ativação nas Opções de energia do Windows e selecionei "ativar este computador" nas opções do agendador de tarefas.

Bhup
fonte

Respostas:

3

Faça o PC acordar usando o agendador de tarefas no Win 10 do modo de suspensão

Estou tentando fazer com que meu PC acorde de manhã, mas não há sorte aqui. Ativei os timers de ativação nas Opções de energia do Windows e selecionei "ativar este computador" nas opções do agendador de tarefas.

Dois passos

Passo 1

Crie um script em lote (exemplo na parte 2 da solução abaixo) que emule as teclas digitadas no teclado . Programe-o com o Agendador de tarefas do Windows e peça para ativar o computador para executar a tarefa nos horários designados.

(Novamente, exemplo de script em lote na parte inferior a ser usado para agendamento junto com a lógica nativa do Windows que emula as teclas do teclado ( SendKeys ) que ativam o monitor inativo).

FONTE: Como fazer seu PC acordar automaticamente do modo de suspensão - mais detalhes

insira a descrição da imagem aqui


Passo 2

Use a lógica de script em lote abaixo para emular nativamente as teclas digitadas no teclado com um script VBS criado e executado dinamicamente com lote. Este será o script em lote a ser executado em termos de lógica como exemplo.

Exemplo de script em lote enviando espaço várias vezes, como pressionar a barra de espaço

(Você também pode usar quaisquer outras chaves necessárias com as SendKeys )

@ECHO OFF
SET TempVBSFile=%tmp%\~tmpSendKeysTemp.vbs

:VBSDynamicBuild
IF EXIST "%TempVBSFile%" DEL /F /Q "%TempVBSFile%"
ECHO Set WshShell = WScript.CreateObject("WScript.Shell") >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"
ECHO Wscript.Sleep 500                                    >>"%TempVBSFile%"
ECHO WshShell.SendKeys " "                                >>"%TempVBSFile%"

CSCRIPT //nologo "%TempVBSFile%"
GOTO EOF

Problemas com o computador ao acordar do modo de suspensão

Se você teve problemas com as Tarefas agendadas do Windows para ativar o computador quando está em suspensão, convém desativar a hibernação caso essa seja a causa. Para fazer isso, basta abrir o prompt de comando do Windows como administrador , digite este comando POWERCFG HIBERNATE OFF, pressione Entere, em seguida, reinicie o PC. Consulte também POWERCFG para obter mais detalhes deste comando.

Teste-o

Se possível, convém testar para confirmar se isso corrige o problema. Configure o trabalho conforme especificado abaixo, mas defina-o em 2 a 5 minutos a partir do momento em que estiver pronto para o teste. Quando estiver pronto, execute isso na linha de comando (como administrador novamente) para colocar a máquina Windows 10 em suspensão C:\Windows\System32\rundll32.exe powrprof.dll,SetSuspendState 0,1,0e aguarde apenas para ver se isso funciona.

Ainda não funciona

Veja minha resposta aceita aqui neste post, relacionada a Problemas de tarefas agendadas . Embora esta resposta seja para o Windows 7, essas opções ainda se aplicam ao Agendador de tarefas no Windows 10. Basta examiná-lo e garantir que as opções estejam definidas conforme indicado ou onde aplicável e equivalente.


Pimp Juice IT
fonte
Obrigado pela resposta, muito apreciada. Mas posso perguntar, a solução acima 1) ativará o PC primeiro e depois 2) executará o script em lote? Se sim, não tenho certeza se funcionará. No momento, configurei o agendador de tarefas para ativar o PC de manhã e executar o cmd.exe, executando a instrução "exit". Mas isso não funciona, porque o PC não acorda de manhã primeiro. Antes que ele possa executar o cmd.exe.
precisa saber é
@Bhup Acabei de adicionar uma seção atualizada na parte inferior da minha resposta com itens adicionais para ajudar a resolver esse problema, se ele ainda existir. Você deve poder testar e confirmar isso conforme indicado na Test Itseção.
Pimp Juice IT
Por que o script grande? Você poderia simplesmente executar o cmd.exe com o parâmetro / c "exit" ou algo parecido?
Squazz 20/02/19
-1

Solução de trabalho!
Eu tive que usar o utilitário PsShutdown para permitir uma suspensão adequada (o problema principal é SetSuspendState não permite que os temporizadores de ativação ativem a máquina). Meu arquivo em lotes para suspensão é uma linha simples: PsShutdown -d -t 2

Toda a minha configuração é: a tarefa agendada executa um VBS para monitorar o backup antes de dormir; quando estiver pronto para dormir, o VBS executa o arquivo bat com psshutdown -d

A execução dos vbs a partir do agendador de tarefas com privilégios mais altos impede as solicitações do UAC ao usar o PsShutdown.

P Pace
fonte