Pula todos os avisos de aviso no encerramento da ACPI?

5

Quando emite um comando de desligamento da ACPI para uma máquina convidada do Windows XP a partir do servidor da VM host, desejo que o Windows seja desligado.

O problema é que o Windows sempre quer fazer uma pergunta ou outra, em vez de apenas desligar. Eu preciso que o desligamento seja confiável, não importa o que esteja funcionando ou funcionando, para que eu possa automatizar os desligamentos da máquina host. Mas eu quero que seja o mais gracioso possível, ao invés de apenas puxar o plugue.

Alguns problemas:

  • Se um usuário estiver conectado, o desligamento da ACPI fará com que apareça uma caixa com a mensagem "Tem certeza de que deseja desligar enquanto outros usuários estiverem conectados"? E isso impede o desligamento até que alguém se conecte à máquina e clique em "sim". Nesse caso, deve-se fazer o melhor para desconectar todos os usuários, usando força, se necessário, e depois desligar sem promover.

  • Programas ou programas ocupados ou não respondentes que solicitam a gravação de dados podem impedir que o Windows seja desligado até que um usuário responda a uma solicitação. Isso deve tentar salvar dados, esperar 30 segundos para programas que não respondem, mas deve ser agressivo com programas difíceis. "não, o tempo acabou! 3,2,1, adeus!"

Existe uma configuração de registro que eu posso alterar:

ACPI_Shutdown: "Shut down if Windows feels like it"

para

ACPI_Shutdown: "Just do it. Kill programs, bump users, try to be graceful about it, but when I come back, I expect you to be off."

Isso deve responder ao comando shutdown da ACPI e não ser um script no Windows, a menos que esse script seja acionado pelo botão liga / desliga da ACPI. Eu estou esperando que isso pode ser alterado com opções de registro.

    
por N Rahl 25.03.2012 / 03:09

3 respostas

1

Provavelmente seria melhor se você remotasse para a VM de alguma forma e emitisse um comando shutdown -s -t 0 , que iniciará o desligamento sem avisar o usuário.

Você pode usar o PsExec da Sysinternal para fazer isso a partir de um script ou arquivo em lotes.

Como alternativa, você pode adicionar uma porta serial virtual à sua VM, habilitar o Console de Administração Especial do Windows XP e emitir o comando por meio do SAC. Emitir comandos através de um script / arquivo em lotes para o SAC será mais complexo, mas você poderá realizar o encerramento mesmo que a rede da instância do XP não esteja funcionando.

Update: Isso pode ser uma novidade no Vista / 7 - parece que o comando shutdown tem um /p que, de acordo com a ajuda do comando "Desligue o computador local sem tempo limite ou aviso. "

Então, tente um shutdown -s -p -f e veja o que você recebe. - Não importa, só pulei na minha máquina xp e ela não tem a opção / p ...

    
por 25.03.2012 / 04:32
1

Para o Windows XP, estou usando o seguinte comando no meu host do Ubuntu:

VBoxManage guestcontrol "WinXPVM" execute --image "C:\Windows\system32\shutdown.exe" --username put_username_here --password put_password_here -- -s -f -t 10

O último argumento é o tempo antes do início do desligamento real - se você quiser começar imediatamente, você pode alterá-lo para -t 0

Espero que isso ajude alguém:)

    
por 12.02.2016 / 01:46
0

Parece que há alguns valores de diretiva de grupo e registro que permitem que o Windows XP / 7 manipule um evento ACPI PowerDown sem exigir interação adicional com o sistema operacional. Também pode ser necessário certificar-se de que o Painel de Controle / Opções de Energia esteja configurado para desligar o botão liga / desliga, bem como monitorar o modo de inatividade desativado.

Windows XP

Adicionar / definir as seguintes chaves / valores do registro

  • [DWORD] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\policies\system\shutdownwithoutlogon=1
  • [DWORD] HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Windows\ShutdownWarningDialogTimeout=1

Se o diálogo de aviso não expirar, o seguinte pode ser adicionado ( aviso * )

  • [DWORD] HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Error Message Instrument\EnableDefaultReply=1

* isto fará com que o windows responda automaticamente a diálogos adicionais, como forçar o logoff do usuário ativo

Windows 7

Adicionar / definir as seguintes chaves / valores de política de grupo

  • Computer Configuration\Windows Settings\Security Settings\Local Policies\Security Options\Shutdown: Allow system to be shut down without having to log on=Enabled
  • Computer Configuration\Administrative Templates\System\Display Shutdown Event Tracker=Disabled

ref , ref

    
por 08.05.2014 / 19:55