Uma maneira de impedir que o Windows Update reinicie o computador?

6

Estou procurando uma maneira de impedir que o Windows reinicie / instale atualizações enquanto meu programa está em execução.

Atualmente, estou configurando uma chave de registro localizada em:

HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

chamado "AUOptions". Estou definindo isso como "2", no entanto, isso não parece funcionar no Vista, como meu computador reiniciado na noite passada. O UAC está atualmente completamente desligado. Alguma outra ideia?

    
por Russell Patterson 30.07.2009 / 22:13

7 respostas

7

Você precisa usar uma configuração de registro diferente para isso:

HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU

Defina isso como 1:

NoAutoRebootWithLoggedOnUsers

Eu também reuni um downloadable patch de registro para este se você quiser isso.

    
por 30.07.2009 / 23:02
4

Bem, como eu tenho o Windows Update configurado no meu computador, ele irá baixar as atualizações, mas não irá realmente instalá-las / reiniciá-las até que eu escolha (como eu gosto de manter meu computador na maioria das vezes e não gosto de ter que reabrir tudo que eu abri antes de o computador ser reiniciado).

Embora seja potencialmente extremo, esta seria uma solução simples para o seu problema, embora não seja programática.

    
por 30.07.2009 / 22:19
2

Eu não sei se este é um aplicativo de formulários do Windows ou não, mas você pode cancelar um desligamento no manipulador de eventos FormClosing de um aplicativo de formulários do Windows:

    private void Form1_FormClosing(object sender, FormClosingEventArgs e)
    {
        if (e.CloseReason == CloseReason.WindowsShutDown)
        {
            e.Cancel = true;
        }
    }

É possível que uma atualização do Windows substitua isso, mas um desligamento normal do usuário será impedido por este código (pelo menos no XP).

    
por 30.07.2009 / 22:25
2

O IMO, uma abordagem melhor, seria estudar como seu aplicativo pode reiniciar automaticamente após a reinicialização do Windows.

Eu sempre deixei várias instâncias do Visual Studio, algumas janelas do Explorer e alguns navegadores em execução quando vou para casa e, quando volto na manhã seguinte, todos os aplicativos ainda estão em execução. Então, acho que pode haver uma maneira de detectar e registrar automaticamente o aplicativo para reiniciar.

Acho que isso pode ser mais documentado e facilmente implementado do que tentar evitar que o Windows seja desligado.

    
por 30.07.2009 / 22:34
1

Existe uma configuração de política de grupo no XP, Vista e Win7 . Observe que o gpedit.msc não está instalado na edição inicial do Vista.

    
por 30.07.2009 / 22:38
0

Não é uma boa solução, mas é possível: basta matar / parar o serviço.

Você também pode (pelo menos isso funciona no Windows XP) alterar as configurações de diretiva usando o painel gpedit.msc . Não sei se editar as políticas de grupo também pode ser feito de forma programática.

    
por 30.07.2009 / 22:19
0

Execute este processo para interromper completamente o Windows Update (por sua própria conta e risco):

sc.exe stop wuauserv
    
por 16.07.2012 / 16:44