AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / computer / Perguntas / 1482205
Accepted
oligofren
oligofren
Asked: 2019-09-14 00:46:13 +0800 CST2019-09-14 00:46:13 +0800 CST 2019-09-14 00:46:13 +0800 CST

Instantâneo automático ou suspensão ao desligar ou fazer logoff do host

  • 772

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

  • Como: inscrever-se e cancelar a inscrição no evento
  • Evento SystemEvents.SessionEnded
  • Evento SystemEvents.SessionEnding
  • Como detectar o desligamento ou logoff do Windows
windows-10 windows
  • 1 1 respostas
  • 263 Views

1 respostas

  • Voted
  1. Best Answer
    oligofren
    2019-10-01T02:02:20+08:002019-10-01T02:02:20+08:00

    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:

    Log:System
    Source:User32
    Event ID:1074
    
    Log:  Microsoft-Windows-Winlogon/Operational
    Source:Winlogon
    Event ID:7002
    
    Log:  Microsoft-Windows-Eventlog-ForwardingPlugin/Operational
    Source:Eventlog-ForwardingPlugin
    Event ID:6005
    
    Log:  Microsoft-Windows-Eventlog-ForwardingPlugin/Operational
    Source:Eventlog-ForwardingPlugin
    Event ID:6006
    
    Log:Security
    Source:Microsoft Windows security auditing.
    Event ID:4647
    

    e o script fica assim (em setembro de 2019):

    @echo off
    echo SuspendRunningVMs Command (x64)...
    echo Ideas for improving this? Visit https://github.com/fatso83/vmware-auto-suspend
    
    SETLOCAL
    REM Specify where vmrun.exe can be located
    SET WSPath="C:\Program Files (x86)\VMware\VMware Workstation"
    
    REM Get the list of currently running VMs
    %WSPath%\vmrun.exe list | FIND /V "Total running VMs:" > %temp%\vmlist.txt
    
    REM Suspend all running VMs
    FOR /F "delims=*" %%v IN (%temp%\vmlist.txt) DO CALL :SuspendVM "%%v"
    
    :WaitLoop
    echo Waiting for the VMs to suspend...
    REM Pause until no more VMs are running
    %WSPath%\vmrun.exe list | FIND "Total running VMs: 0"
    IF NOT ERRORLEVEL 1 GOTO End
    timeout /t 10 /nobreak
    GOTO WaitLoop
     
    :End
    echo End of script; all VMs suspended.
    ENDLOCAL
    GOTO :EOF
     
    REM Suspend a VM
    :SuspendVM
    REM Suspend any running VM.  Workaround a "vmrun list" quirk that outputs
    REM a blank line, by not trying to suspend a blank VM
    IF %1x==x GOTO :EOF
    echo Suspending VM %1
    %WSPath%\vmrun.exe suspend %1
    REM Allow some time after suspend call (allow disk to write vmem).
    echo Wait a little bit for the VM to commit...
    timeout /t 15 /nobreak
    GOTO :EOF
     
    REM Resume a VM (not used now, but may have use in future)
    :ResumeVM
    REM Resume any suspended VM.  Workaround a "vmrun list" quirk that outputs
    REM a blank line, by not trying to start a blank VM
    IF %1x==x GOTO :EOF
    echo Starting VM %1
    %WSPath%\vmrun.exe start %1
    GOTO :EOF
     
    :EOF
    

    Editar: removi o seguinte evento, pois causou alguns problemas :

    Log:Security
    Source:Microsoft Windows security auditing.
    Event ID:4634
    
    • 0

relate perguntas

  • Como ativar o sensor de impressão digital no domínio e no diretório ativo do Linux

  • atalho do shell da área de trabalho no painel lateral do explorer

  • Por que não consigo enviar arquivos do Android para o Windows 10?

  • Abrir com em vários arquivos?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    O visualizador de fotos do Windows não pode ser executado porque não há memória suficiente?

    • 5 respostas
  • Marko Smith

    Como faço para ativar o WindowsXP agora que o suporte acabou?

    • 6 respostas
  • Marko Smith

    Área de trabalho remota congelando intermitentemente

    • 7 respostas
  • Marko Smith

    Serviço do Windows 10 chamado AarSvc_70f961. O que é e como posso desativá-lo?

    • 2 respostas
  • Marko Smith

    O que significa ter uma máscara de sub-rede /32?

    • 6 respostas
  • Marko Smith

    Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows?

    • 1 respostas
  • Marko Smith

    O VirtualBox falha ao iniciar com VERR_NEM_VM_CREATE_FAILED

    • 8 respostas
  • Marko Smith

    Os aplicativos não aparecem nas configurações de privacidade da câmera e do microfone no MacBook

    • 5 respostas
  • Marko Smith

    ssl.SSLCertVerificationError: falha na verificação do certificado [SSL: CERTIFICATE_VERIFY_FAILED]: não foi possível obter o certificado do emissor local (_ssl.c:1056)

    • 4 respostas
  • Marko Smith

    Como posso saber em qual unidade o Windows está instalado?

    • 6 respostas
  • Martin Hope
    Albin Como faço para ativar o WindowsXP agora que o suporte acabou? 2019-11-18 03:50:17 +0800 CST
  • Martin Hope
    fixer1234 O "HTTPS Everywhere" ainda é relevante? 2019-10-27 18:06:25 +0800 CST
  • Martin Hope
    Kagaratsch O Windows 10 exclui muitos arquivos minúsculos muito lentamente. Algo pode ser feito para agilizar? 2019-09-23 06:05:43 +0800 CST
  • Martin Hope
    andre_ss6 Área de trabalho remota congelando intermitentemente 2019-09-11 12:56:40 +0800 CST
  • Martin Hope
    Riley Carney Por que colocar um ponto após o URL remove as informações de login? 2019-08-06 10:59:24 +0800 CST
  • Martin Hope
    zdimension Ponteiro do mouse movendo-se nas teclas de seta pressionadas no Windows? 2019-08-04 06:39:57 +0800 CST
  • Martin Hope
    Inter Sys Como Ctrl+C e Ctrl+V funcionam? 2019-05-15 02:51:21 +0800 CST
  • Martin Hope
    jonsca Todos os meus complementos do Firefox foram desativados repentinamente, como posso reativá-los? 2019-05-04 17:58:52 +0800 CST
  • Martin Hope
    MCK É possível criar um código QR usando texto? 2019-04-02 06:32:14 +0800 CST
  • Martin Hope
    SoniEx2 Altere o nome da ramificação padrão do git init 2019-04-01 06:16:56 +0800 CST

Hot tag

windows-10 linux windows microsoft-excel networking ubuntu worksheet-function bash command-line hard-drive

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve