Executando um script em lote no Windows 10 shutdown / logoff / reboot

1

Primeiro, desculpe. Este é um re-post da minha pergunta original em "stackoverflow", mas eu tentei moderadores para movê-lo, devido à questão de ser mais um problema geral de comportamento do Windows, em seguida, um problema de codificação real, mas sem sucesso.

Mas para negócios.

Estou tentando executar um script BAT quando o computador (executando o Win10) recebe um comando para desligar, fazer logoff ou reinicializar. Como às vezes estou executando máquinas virtuais (no VirtualBox), meu script foi projetado para pesquisar todas as VMs em execução, pausá-las e verificar se nenhuma interface da VM ainda está ativa (pois isso pode levar a que o estado de pausa fique corrompido) exigindo uma nova reinicialização da VM). O script é testado e está funcionando conforme o esperado.

Meu problema é que ele seja executado automaticamente.

Eu tentei adicionar o script ao GP em User "Config | Configurações do Windows | Scripts (Logon / Logoff) | Logoff", como encontrado nas postagens anteriores. Isso pareceu iniciar a execução do script, mas não permitiu que ele terminasse corretamente antes de executar o encerramento real.

Por isso, pesquisei e acabei alterando outro valor de interesse de GP. Em "Configuração do usuário | Modelos administrativos | Sistema | Scripts", habilitei "Exibir instruções em scripts de logoff à medida que eles são executados". Isso faz com que o windows mostre o prompt de comando e espere que ele seja fechado antes de continuar o desligamento.

Mas ainda estou com problemas. Meu problema atual é que tudo isso ainda acontece com atraso no processo de desligamento. Ao pressionar o botão de desligamento no menu iniciar, primeiro sou apresentado a um popup informando que ainda tenho o programa em execução (a VM), com uma opção para forçá-los a parar. Só depois disso (forçando minha VM a desligar a maneira não tão bonita), o windows realmente executa o meu script (que tinha como objetivo salvar as VMs em uma mansão adequada).

A minha pergunta é, portanto, se houver uma maneira, preferencialmente usando GP e / ou agendador de tarefas, que eu possa ter o windows executando meu script BAT (e esperar que ele termine) quando um shutdown / logoff / reboot é acionado, mas antes que o prompt "force close" apareça?

Cumprimentos Henrik V. Nielsen

    
por Henrik Nielsen 12.07.2017 / 12:18

1 resposta

0

A necessidade é a mãe da invenção. Não tenho certeza se isso se aplica ao seu caso de VM, mas:

Minha resposta do Windows 10 usando gpedit.msc e a configuração de scripts de logoff foi criar um arquivo cmd de ping separado com "ping -n 5 127.0.0.1" em execução após o crítico. Isso permitiu que meu script de logoff "crítico" funcionasse bem.

    
por 24.07.2018 / 20:18