Ninguém gosta de ficar até tarde a espera que todos acabem de trabalhar e saiam do tal servidor para se poder reiniciar. Claro, posso criar uma tarefa para ele correr o shutdown as x horas, mas para quê tanto trabalho para algo que vou correr uma vez a cada ano talvez, e possivelmente em outros servidores?
Eis que uso o PsShutdown. O mesmo faz parte do PsTools, um grupo de pequenos utilitários para o sistema operativo Windows. Embora seja um bocado antigo, ainda dá bastante jeito para algumas operações, especialmente.. reiniciar servidores em horas mortas automaticamente.
Recomendo criar um diretório especifico para guardar os ficheiros. Eu pessoalmente uso c:\PsTools
caso necessite de copiar de outro servidor.
Na pasta, crio um ficheiro txt com os comandos a correr para shutdown e reboot. Assim só tenho de copiar e colar para a janela de comandos sem precisar de rever os diferentes parâmetros. Os comandos que mais uso são:
Reboot do servidor#
c:\pstools\psshutdown.exe -r -c -t 22:00
Shutdown do servidor#
c:\pstools\psshutdown.exe -c -t 22:00
Correndo o comando simples devolve todos os parâmetros, mas apenas vou explicar os acima definidos:
-r Reiniciar o servidor depois de encerrar o sistema operativo.
-c Permitir que a operação seja abortada por um utilizador.
-t Especificar o horário para a operação correr (no exemplo está 22 horas)
Por exemplo, correndo o comando para reiniciar por exemplo, receberá a informação do tempo que falta para a operação correr:
C:\PsTools>psshutdown.exe -r -c -t 22:00
PsShutdown v2.52 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com
Local system is scheduled to reboot in 11:51:00.
Entretanto se decidires cancelar, só necessitas de correr a aplicação com o parâmetro -a
:
C:\PsTools>psshutdown.exe -a
PsShutdown v2.52 - Shutdown, logoff and power manage local and remote systems
Copyright (C) 1999-2006 Mark Russinovich
Sysinternals - www.sysinternals.com
Shutdown of local system aborted.
No entanto existem servidores que correm aplicações abertas (não como serviço do windows). Se assim for, o servidor poderá não conseguir encerrar a aplicação sem uma confirmação do utilizador. Podes optar por forçar o encerramento da aplicação com o parâmetro -f
mas a responsabilidade será unicamente de quem decidir usar esta opção. Recomendo testar antes sem.
Não te esqueças de explorar as outras aplicações existentes como PsLoggedOn, PsFile ou PsGetSid.