Meu principal ambiente de desenvolvimento é um convidado Ubuntu VM rodando em um robusto host Windows 10 Pro (64 GB de RAM, 16 núcleos i9, SSD de 1 TB, etc). Esta é a melhor configuração de desenvolvimento que tive até agora, com uma exceção: o Windows Update reinicia minha máquina em intervalos regulares. Isso significa que perco o estado de tudo o que estava fazendo na VM, o que é péssimo, caso eu tenha saído do trabalho no meio de uma sessão de depuração.
Como posso configurar o VMWare para obter um instantâneo automaticamente quando o VMWare é instruído a fechar pelo sistema operacional (host)?
Vejo que há vários scripts (parecem Powershell?) flutuando nos fóruns VMWare, então eu provavelmente poderia hackear algo juntos, se me apresentassem uma API ou um VMWare Powershell SDK, mas é claro que seria muito mais fácil se isso a funcionalidade já estava incorporada. As únicas configurações que encontrei tratam do que o VMWare faz com o instantâneo quando o convidado é desligado (Opções -> Instantâneo), não o que fazer quando o host é desligado.
Estou pensando que conectar um monitor à parte do sistema do log de eventos do Windows resolveria o problema, mas parece bastante complicado ...
Dicas de script relevantes
Depois de muitas idas e vindas, criei uma solução e a coloquei no GitHub . A instalação é semiautomática: baixe dois arquivos e clique com o botão direito do mouse em um arquivo xml.
A lista de eventos do Windows (visto no log de eventos do Windows) à qual o script responde é a seguinte:
e o script fica assim (em setembro de 2019):
Editar: removi o seguinte evento, pois causou alguns problemas :