Como forço o Windows a verificar se há atualizações?

25

Após uma nova instalação do Windows - XP ou 7 - como posso "forçar" as atualizações do Windows?

Não quero receber atualizações "antigas" do Windows depois de uma semana; isso poderia ser feito em "uma etapa"? Existem comandos "mágicos" que forçam o Windows a verificar se há atualizações? Se houver algum, instale-os?

LanceBaynes
fonte

Respostas:

12

Você pode procurar e instalar atualizações automaticamente usando um script. Isso funcionará no XP ou no Windows 7.

Há vários scripts disponíveis para download, aqui é o meu :

' Written in 2007 by Harry Johnston, University of Waikato, New Zealand.
' This code has been placed in the public domain.  It may be freely
' used, modified, and distributed.  However it is provided with no
' warranty, either express or implied.
'
' Exit Codes:
'   0 = scripting failure
'   1 = error obtaining or installing updates
'   2 = installation successful, no further updates to install
'   3 = reboot needed; rerun script after reboot
'
' Note that exit code 0 has to indicate failure because that is what
' is returned if a scripting error is raised.
'

Set updateSession = CreateObject("Microsoft.Update.Session")

Set updateSearcher = updateSession.CreateUpdateSearcher()
Set updateDownloader = updateSession.CreateUpdateDownloader()
Set updateInstaller = updateSession.CreateUpdateInstaller()

Do

  WScript.Echo
  WScript.Echo "Searching for approved updates ..."
  WScript.Echo

  Set updateSearch = updateSearcher.Search("IsInstalled=0")

  If updateSearch.ResultCode <> 2 Then

    WScript.Echo "Search failed with result code", updateSearch.ResultCode
    WScript.Quit 1

  End If

  If updateSearch.Updates.Count = 0 Then

    WScript.Echo "There are no updates to install."
    WScript.Quit 2

  End If

  Set updateList = updateSearch.Updates

  For I = 0 to updateSearch.Updates.Count - 1

    Set update = updateList.Item(I)

    WScript.Echo "Update found:", update.Title

  Next

  WScript.Echo

  updateDownloader.Updates = updateList
  updateDownloader.Priority = 3

  Set downloadResult = updateDownloader.Download()

  If downloadResult.ResultCode <> 2 Then

    WScript.Echo "Download failed with result code", downloadResult.ResultCode
    WScript.Echo

    WScript.Quit 1

  End If

  WScript.Echo "Download complete.  Installing updates ..."
  WScript.Echo

  updateInstaller.Updates = updateList

  Set installationResult = updateInstaller.Install()

  If installationResult.ResultCode <> 2 Then

    WScript.Echo "Installation failed with result code", installationResult.ResultCode

    For I = 0 to updateList.Count - 1

      Set updateInstallationResult = installationResult.GetUpdateResult(I)
      WScript.Echo "Result for " & updateList.Item(I).Title & " is " & installationResult.GetUpdateResult(I).ResultCode

    Next

    WScript.Quit 1

  End If

  If installationResult.RebootRequired Then

    WScript.Echo "The system must be rebooted to complete installation."

    WScript.Quit 3

  End If

  WScript.Echo "Installation complete."

Loop 

Você executa isso na linha de comando da seguinte maneira:

cscript wsusupdate.vbs

Meu script é minimamente funcional, mas ainda pode ser útil. Existem outros scripts disponíveis com muitos recursos adicionais, tente uma pesquisa no Google.

Harry Johnston
fonte
Vou experimentar este! Enquanto isso, alguém tem alguma experiência com esse script?
LanceBaynes
Este script termina com <59, 3> <null>: 0x80240044. Alguma idéia de por que isso falha? Eu tentei procurar os métodos que isso faz referência, mas não consegui descobrir o que está acontecendo. Você pode me apontar na direção certa?
daviesgeek
@daviesgeek: 0x80240044 é WU_E_PER_MACHINE_UPDATE_ACCESS_DENIED ou seja, você precisa estar executando o script com permissões elevadas.
Harry Johnston
Ah obrigado. Como eu elevaria as permissões na linha de comando? (desculpe, eu sou um guru Linux, não uma pessoa do Windows ...)
daviesgeek
1
Vista / Win7: Abra o Menu Iniciar, digite cmd e pressione control-shift-ENTER em vez de apenas ENTER. No Windows 8, acho que a tecla de atalho do Windows-X exibe um menu que inclui uma linha de comando administrativa. Ou em qualquer um dos sistemas, você pode encontrar o cmd.exe pelo Explorer, clique com o botão direito do mouse e selecione Executar como administrador.
Harry Johnston
41

Além da maneira usual de usar o Windows Update, você pode forçar uma verificação em uma linha de comando.

Abra um prompt de comando do administrador e execute:

C:\> %windir%\system32\wuauclt.exe /detectnow

O Wuauclt.exe é o Cliente do AutoUpdate do Windows Update e é usado para verificar as atualizações disponíveis (para as várias versões da plataforma MS Windows) do Microsoft Update.

Isso não forçará uma instalação.

Ƭᴇcʜιᴇ007
fonte
1
Apenas para acrescentar: isso funciona tanto no XP, Vista quanto 7
canadense Luke REINSTATE MONICA
@ Lucas Ele também funciona no Windows 2000 SP4. :)
Ƭᴇcʜιᴇ007 30/10/11
1
No entanto, para uma instalação nova, é melhor procurar atualizações na GUI (para Windows Vista +) ou no site do Windows Update (pré-Vista). Eu acho que isso dará ao processo de download maior prioridade. Por padrão, o BITS só baixa uma atualização quando a conexão de rede não está ocupada.
billc.cn
2
Uma versão abreviada seria a tecla Windows + R e digite wuauclt / detectnow e, em seguida, pressione enter.
Steve Rathbone
5

Para verificar se há atualizações, vá para Painel de Controle, Segurança, Windows Update e clique em "Verificar atualizações".

insira a descrição da imagem aqui

surfasb
fonte
e no winXP? :)
LanceBaynes
No Windows XP, pressione Iniciar-> Todos os Programas -> (Windows | Microsoft) Atualize e execute uma pesquisa automática ou manual.
precisa
1
Isto não é para winXP
M. do CA
2

Outra maneira de forçar uma verdadeira nova varredura para atualizações é limpar o slate, excluindo todas as atualizações armazenadas em % windir% \ Windows \ SoftwareDistribution \ Download :

    NET STOP wuauserv
    RD /S /Q %windir%\SoftwareDistribution\Download
    NET START wuauserv

Em seguida, vá para o Windows Update e "Verifique se há atualizações". Pode levar uma hora, porque todos os arquivos atualizáveis ​​no volume do sistema são verificados (as "verificações de atualizações" subsequentes serão rápidas). Essa abordagem elimina erros, atualizações incorretas e gera um sistema limpo e atualizado, pelo menos na medida em que a MS o vê.

rajah
fonte
Obrigado, ótima resposta! Eu estava procurando por algo mais forte do que as outras respostas. Minha instalação do Windows 10 está danificada de alguma forma e as atualizações não parecem mais acontecer. Eu preciso forçá-lo a atualizar, espero que isso funcione.
AZP
1

Estou usando uma ferramenta de segunda parte chamada wuinstall para atualizar a instalação do Windows. com isso, você pode automatizar todo o processo de atualização, incluindo reinicializações automáticas. Eu acho que é uma das maneiras mais rápidas de atualizar o Windows sem a presença do usuário.

hansi
fonte
0

Descobri que se, como parte de sua nova instalação no Windows 7, você atualizou o IE ou ainda não o executou e respondeu às perguntas introdutórias, o Windows Update apresentará um erro. Também não encontrei uma maneira de alternar o Windows Update para o Microsoft Update sem passar pela GUI; portanto, inicio manualmente o IE, inicializo-o e configuro o Windows Update através da GUI, para poder alternar para o Microsoft Update e evitar a erro inicial. Sua milhagem pode variar.

Kent
fonte
0

Tive sucesso ao seguir as etapas deste post , ao instalar o IE8 e o WI4.5 , ele acionará atualizações automáticas para iniciar downloads.

soma de verificação
fonte