Executar um script quando o Windows voltar do estado de suspensão / hibernação?


13

Existe uma maneira de o Windows (XP, Vista e 7) executar um script quando uma máquina retorna do modo de hibernação / suspensão? Tudo bem comigo se o script for executado após o usuário desbloquear uma sessão bloqueada após o reinício da máquina.

Eu tenho um serviço que precisa ser chutado quando uma máquina é retomada para que ela funcione corretamente no currículo.

Respostas:


14

No Windows 7, você pode fazer isso com uma tarefa agendada. Configure um script em lote para executar as ações desejadas e crie uma tarefa com um dos seguintes gatilhos:

  • No desbloqueio da estação de trabalho - ignora o primeiro logon, mas inicia após o desbloqueio.
  • Na conexão com a sessão do usuário - Todo logon pode ser uma conexão local ou remota.
  • Em um evento - No log do sistema, a fonte "Solução de problemas de energia" registrará um código de evento 1 quando você acordar de um estado de suspensão.

Não os testei para garantir que eles funcionem conforme o esperado, mas usei "No bloqueio da estação de trabalho" com grande sucesso. Pelo que me lembro das tarefas agendadas no XP, ele tem apenas "Quando eu faço logon".

doc 7 fonte de vitória

documento de origem do XP XP

Espero que isto ajude


2
Note-se que "na estação de trabalho de bloqueio / desbloqueio" opções de disparo são exibidos apenas para "Criar Tarefa ..." e não "Criar Tarefa Básica ..."
RYMO

A fonte "Solução de problemas de energia" também funciona com o Windows 8.1.
Herb

1
O solucionador de problemas de energia não funciona para mim no win 10 pro. A estação de trabalho desbloquear obras de qualquer maneira
e-cloud

1
"On workstation unlock" funciona para mim
sms247 05/12/19

O código de evento 107 funciona para mim no win 10 pro
Alex78191 16/01

2

Usando Win32_PowerManagementEvent ? Acabei de pesquisar no Google e encontrei o seguinte script (sem garantia;).

Set oShell = CreateObject("WScript.Shell")

Set colMonitoredEvents = GetObject("winmgmts:")._
ExecNotificationQuery("Select * from Win32_PowerManagementEvent")

Do
  Set objLatestEvent = colMonitoredEvents.NextEvent

  Select Case objLatestEvent.EventType

    Case 4
      oShell.Run "Calc.exe", 1, False
      MsgBox "Entering suspend, Calc started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 7
      oShell.Run "Notepad.exe", 1, False
      MsgBox "Resuming from suspend, notepad started", _
      vbInformation + vbSystemModal, "Suspend"

    Case 11
      MsgBox "OEM Event happened, OEMEventCode = " _
      & strLatestEvent.OEMEventCode

    Case 18
      MsgBox "Resume Automatic happened"

  End Select
Loop

1

Adicione uma tarefa agendada com gatilho: no desbloqueio da estação de trabalho. Funciona, eu corro depois de acordar. Na caixa Windows 2008R2, o serviço de áudio precisa ser reiniciado; caso contrário, às vezes ele usa 100% de 1 CPU.


-1

Na verdade, eu escrevi esse script há algum tempo e escrevi em um blog sobre ele, mas acredito que foi um pouco depois da sua pergunta aqui. Da próxima vez que escrever algo assim, pesquisarei o Stack Overflow imediatamente, porque quando as pessoas procuram essas coisas, elas tendem a ir a este site hoje em dia.


4
Embora ter um link seja legal, você poderia postar as partes importantes (até o script) aqui, no local? Dessa forma, os usuários não precisarão ir para outro lugar; caso o blog seja desativado, temos um backup.
slhck
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.