De shutdown /?
:
No args Display help. This is the same as typing /?.
/? Display help. This is the same as not typing any options.
/i Display the graphical user interface (GUI).
This must be the first option.
/l Log off. This cannot be used with /m or /d options.
/s Shutdown the computer.
/r Shutdown and restart the computer.
/g Shutdown and restart the computer. After the system is
rebooted, restart any registered applications.
/a Abort a system shutdown.
This can only be used during the time-out period.
/p Turn off the local computer with no time-out or warning.
Can be used with /d and /f options.
/h Hibernate the local computer.
Can be used with the /f option.
/e Document the reason for an unexpected shutdown of a computer.
/m \computer Specify the target computer.
/t xxx Set the time-out period before shutdown to xxx seconds.
The valid range is 0-315360000 (10 years), with a default of 30.
If the timeout period is greater than 0, the /f parameter is
implied.
/c "comment" Comment on the reason for the restart or shutdown.
Maximum of 512 characters allowed.
/f Force running applications to close without forewarning users.
The /f parameter is implied when a value greater than 0 is
specified for the /t parameter.
/d [p|u:]xx:yy Provide the reason for the restart or shutdown.
p indicates that the restart or shutdown is planned.
u indicates that the reason is user defined.
If neither p nor u is specified the restart or shutdown is
unplanned.
xx is the major reason number (positive integer less than 256).
yy is the minor reason number (positive integer less than 65536).
/t
, /c
e /a
são as opções de interesse aqui.
/t
fornece um tempo limite
/a
permite que um usuário cancele um processo de desligamento enquanto aguarda o tempo limite
/c
permite que você forneça uma mensagem ( /d
afeta os logs)
Solução possível - No comentário, declare que o desligamento pode ser cancelado executando shutdown /a
dentro do tempo limite.
Considere enviar e-mails para usuários descrevendo isso com mais detalhes.
Outra solução seria executar um script curto que dá ao usuário a opção de adiar ou autorizar o encerramento, no ponto em que ele aguardaria ou executaria o comando de desligamento.
Edit: Encontrou praticamente a mesma pergunta no SO, respondida aqui: Um arquivo em lote para o desligamento com a opção de prompt para abortar e re-executar após um determinado período de tempo?