Eu só coloquei isso junto, parece funcionar muito bem:
wuauclt /detectnow
wuauclt /updatenow
:CheckForRequiredRestart
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update\RebootRequired" > nul && shutdown -r -t 0
ping 127.0.0.1 -n 61 > nul
goto CheckForRequiredRestart
Basta lançá-lo em um arquivo .cmd
e soltá-lo na pasta Inicializar e executá-lo uma vez.
(Eu não estou muito claro sobre qual sistema operacional suporta o parâmetro /updatenow
, mas parece ter um efeito no Windows 7.)
Eu testei o patch de uma VM do Windows 7 e ela passou por toda a sequência (algo como 10 reinicia?). As únicas correções que permaneceram foram a Ferramenta de Remoção Maliciosa (que requer aprovação do usuário) e 4 atualizações desmarcadas por padrão. Eles são pequenos, porém, após a instalação, houve uma reinicialização e, em seguida, alguns patches no topo e foi feito.
Não instala atualizações opcionais, por isso havia algumas delas, pequenas. Eu instalei-os manualmente e não havia sequer quaisquer patches no topo, então tudo isso foi bastante eficaz para um script simples. Quando finalmente terminar, simplesmente exclua o script. Eu não conheço uma maneira simples de detectar um acabamento completo ou eu teria que remover / desmarcar a si mesmo.
Eu realmente não gosto dos scripts WuInstall ou VBS / PowerShell, pois eles são todos forçados a lidar com uma seleção categórica avançada de atualizações que é muito complexa para esse objetivo simples. Não há simplicidade como "Importante", "Recomendado" e "Opcional"; você tem que excluir explicitamente os idiomas e / ou incluir muitas categorias diferentes e, mesmo assim, não é exatamente o mesmo que você obtém através do ciclo tradicional de instalação / reinicialização.
Para corrigir mais do que apenas o sistema ímpar, você deve obviamente usar um método diferente, como implantar uma imagem com WDS, usando uma instalação corrigida, WSUS ou WSUS Offline Update.