No Windows 7, como posso saber quando um computador está programado para ser desligado?

No Windows 7, como posso saber quando um computador está programado para ser desligado?

Digamos que eu use "shutdown -s -f -t 13600" para iniciar um desligamento programado.

No Windows XP, eu sempre via uma caixa de diálogo alertando sobre o desligamento iminente.

No entanto, no Windows 7, ele mostra um pop-up na bandeja do sistema, que desaparece após alguns segundos.

Como faço para consultar ou habilitar uma caixa de diálogo como o Windows XP para saber quando o desligamento acontecerá?

Responder1

Eu encontrei uma maneira.

Se em vez de usarshutdown -s -f -t 13600

você usashutdown -s -f -t 13600 -c "13600"

A -copção adiciona um comentário ao evento de desligamento registrado porVisualizador de eventos do Windows

Seu comentário "13600" ficará visível no Visualizador de Eventos conforme visto no oval vermelho: visualizador de eventos mostrando eventos do sistema

Para ver esta visualização você mesmo: digite Event Viewer no menu iniciar e vá para Logs do Windows -> Sistemae você verá uma lista de eventos do sistema.

Qualquer evento comID do eventode1074será um desligamento atrasado.

Então o que queremos é um código que pegue o último 1074evento, procure o valor no comentário do evento e adicione esse valor (em segundos) ao horário em que o evento foi criado, dando assim o tempo de desligamento.

Criei uma função para Windows PowerShell (vem com o Windows 7) que faz isso:

function nextShutdownTime
{
    $events = Get-WinEvent -FilterHashtable @{logname="system"; id=1074}
    $event = $events[0]
    $eventXML = [xml]$event.ToXml()
    return $event.TimeCreated.addSeconds([int]$eventXML.Event.EventData.Data[5])
}

Basta adicioná-lo ao seu perfil do PowerShell e no PowerShell apenas executar o comando nextShutdownTimepara ver o tempo de desligamento esperado.

Responder2

A maneira mais fácil de descobrir se um desligamento está em andamento é simplesmente agendar outro desligamento. Dê um tempo limite de pelo menos 200 segundos, só para ter certeza. Você receberá um erro informando que já há um desligamento em andamento ou iniciará um desligamento cronometrado que pode ser abortado digitando shutdown /a.

Então você digita

shutdown /r /t 600

Agora você ou consegue

C:\Users\Administrator>shutdown /r /t 600
A system shutdown has already been scheduled.(1190)

ou agendará um novo desligamento.

Se você quiser apenas ter certeza de que nenhum desligamento está programado, você pode simplesmente tentar abortar. Ele será abortado ou indicará que nenhum desligamento foi agendado.

C:\Users\Leon>shutdown /a
Cannot abort a system shutdown. There is no shutdown in progress (1116)

Responder3

Passei cerca de uma hora tentando fazer isso funcionar exatamente como você queria de alguma forma. Eu experimentei, procurei e procurei, mas não consegui ficar perfeito, mas consegui encontrar alguma coisa.

Tentei todas as combinações de desligamento (opções -i -c -d), mas nada.

Também experimentei a interface GUI após a opção -i.

Também tentei alterar a exibição do tempo do balão para que ele ficasse mais tempo na bandeja do sistema, mas mesmo assim, até isso desaparece.

O mais próximo que chego com este comando de exemplo:shutdown -i -r -t 300

Acho que o fato é que eles simplesmente mudaram a forma como funciona, e não acho que haja uma maneira de contornar isso 100%, mas agora -iabre uma caixa de diálogo, enquanto antes trazia a tela que você queria. Quando usei o -ino Windows 7, tive que preencher a caixa e aqui estava o resultado:

insira a descrição da imagem aqui

Aí eu bati Entere consegui isso:

insira a descrição da imagem aqui

Eu testei e parece que o valor máximo que você pode colocar no "Display warning for X Seconds" é de apenas 600, apesar de você poder inserir até 999 (programação muito estranha).

Responder4

Como faço para consultar ou habilitar uma caixa de diálogo como o Windows XP para saber quando o desligamento acontecerá?

O programa de desligamento nativo do Windows 7 não fornece uma caixa de diálogo de contagem regressiva (ou um botão de cancelamento) como faziam as versões anteriores do Windows.

Se precisar agendar um desligamento e fornecer um botão de contagem regressiva e cancelamento, você pode usar um aplicativo HTA, que pode conter texto, imagens, contagem regressiva e botão cancelar.

Aqui está um exemplo: Script HTA - Script de desligamento e mensagem de aviso

Caixa de diálogo de desligamento

A fonte é meu blog pessoal.

informação relacionada