Gostaria de agendar uma reinicialização única do servidor, por exemplo, para concluir a instalação das atualizações de manhã cedo. Como posso fazer isso na linha de comando no Windows 2012?
No Windows 2008, eu teria usado o at
comando
at 2am shutdown -r -f -c "restart"
e tirou o resto da tarde de folga.
Mas no Windows 2012, a execução desse comando me diz que
The AT command has been deprecated. Please use schtasks.exe instead.
Portanto, o comando equivalente ao schtasks.exe pode ser
schtasks /create /sc once /tn restart /tr "shutdown - r -f ""restart""" /st 02:00
Além de ser muito esquecível, esse comando tem outra desvantagem importante : ele agenda a tarefa para as 2 da manhã de hoje - não adianta muito, a menos que eu esteja acordado à 1 da manhã para executá-lo.
De acordo com a ajuda do schtasks.exe, a /sd
opção para definir a data de início não é aplicável /sc once
. Portanto, mesmo que eu queira digitar a data de amanhã no formato mm / dd / aaaa - e não o faço - não posso fazer isso.
A única solução possível que encontrei é aqui , onde Kevin Traas sugere a criação de arquivo em lotes para criar uma tarefa agendada antes da meia-noite, que aguarda alguns minutos e, em seguida, cria outra tarefa agendada para executar o comando que você realmente deseja executar. Inteligente, mas nem de longe tão conveniente quanto at
.
fonte
Respostas:
O
shutdown
comando em si possui um parâmetro de atraso/t
que atrasa um desligamento por um número de segundos até 10 anos. Se você deseja agendar um desligamento em 14 horas, por exemplo, pode executarVocê também pode adicionar um motivo com o
/d
parâmetro ou um comentário com/c
; corrashutdown /?
para detalhes.fonte
Apesar da documentação, o
/SD
parâmetro parece ser compatível com o/SC ONCE
. A tarefa foi criada com êxito para ser executada na data fornecida, no momento fornecido. (Testado em W8 e W7)Além disso, a documentação do XP
schtasks.exe
chega ao ponto de dizer que o/SD
parâmetro é necessário ao usar/SC ONCE
, então imagino que haja um número razoável de scripts usando a combinação.Exemplo:
Se não concordar com a documentação, considere gerar o arquivo XML diretamente (o esquema está aqui ), que é definitivamente suportado e definitivamente suporta uma tarefa agendada para ser executada uma vez em uma data futura. Uma maneira fácil de obter o arquivo adequado é criá-lo no
mmc
snap-in Agendador de tarefas e usar o comando exportar .Exemplo:
Comando para importar:
fonte
/sd
suporte. Também é interessante sobre a importação de XML - embora pessoalmente eu não me importe em ir contra a documentação. Portanto, pelo menos isso é possível - apenas muito, muito mais difícil do que costumava serat
./sd
não funciona/sc once
no Windows Server 2008. Isso resulta em:ERROR: Incorrect Start Date.
/SD 06/14/2013
.Acabei criando
runat.ps1
para replicar algumas das características simples deat
, incorporando a sabedoria da resposta de Mitch.A sintaxe é
runat (time) (command)
, por exemplo,Se você também é nostálgico pelos bons velhos tempos, quando não precisava digitar ...
... então você pode instalá-lo executando este comando powershell:
Ou você pode baixar manualmente o
runat.ps1
script aqui .fonte
Eu usei isso em um script para 2012 R2 e funciona bem; Ele criará uma tarefa diária que reiniciará o servidor às 4h30.
Certifique-se de executar isso em um prompt do CMD com privilégios administrativos.
Andy
fonte
Apenas outro script do PowerShell para reiniciar programaticamente o computador no dia seguinte, no horário especificado
fonte
Sugiro usar o comando schtasks com o parâmetro / f.
Usando / f, se houver uma tarefa com o mesmo nome, ela será modificada.
É muito útil para implantar tarefas via script.
Um exemplo completo de uma reinicialização do servidor de agendamento:
Extraído de: http://www.sysadmit.com/2016/09/windows-programar-apagado-o-reinicio-automatico.html
fonte
Se o objetivo for simplesmente reiniciar após a instalação das atualizações, você poderá usar o módulo PSWindowsUpdate para instalar as atualizações. Você pode baixá-lo aqui . Depois de instalado, basta abrir o Powershell e digite
fonte
Esse script permite agendar a reinicialização de vários servidores em uma data / hora específica.
https://gallery.technet.microsoft.com/Schedule-restart-of-2c1131fb?redir=0
fonte