Partilhar via


Pesquisando, baixando e instalando atualizações específicas

O exemplo de script neste tópico mostra como usar o Windows Update Agent (WUA) para verificar, baixar e instalar uma atualização específica. A atualização pode ser especificada por seu título.

O exemplo procura uma atualização de software específica, baixa a atualização e instala a atualização. Por exemplo, um usuário pode usar esse método para determinar se uma atualização de segurança crítica está instalada em um computador. Se a atualização não estiver instalada, o usuário poderá garantir que a atualização seja baixada e instalada. O usuário também pode garantir que seja notificado sobre o status da instalação.

A atualização de exemplo é identificada pelo título da atualização na propriedade Title de IUpdate. O título da atualização sugerida neste exemplo é "Atualização para o cliente Windows Rights Management 1.0".

Observação

Para obter informações sobre como pesquisar, baixar e instalar todas as atualizações que se aplicam a um aplicativo específico, consulte Pesquisando, baixando e instalando atualizações.

 

Antes de tentar executar este exemplo, observe o seguinte:

  • O WUA deve estar instalado no computador. Para obter mais informações sobre como determinar a versão do WUA instalada, consulte Determinando a versão atual do WUA.
  • O exemplo não fornece sua própria interface de usuário. O WUA solicita que o usuário reinicie o computador se uma atualização exigir uma reinicialização.
  • O exemplo só pode baixar atualizações do WUA. Ele não pode baixar atualizações de um servidor SUS (Software Update Services) 1.0.
  • A execução deste exemplo requer o Windows Script Host (WSH). Para obter mais informações sobre o WSH, consulte a seção WSH do Platform Software Development Kit (SDK). Se o exemplo for copiado para um arquivo chamado WUA_SpecificUpdate.vbs, você poderá executá-lo abrindo uma janela do Prompt de Comando e digitando este comando: cscript WUA_SpecificUpdate.vbs

Observação

Ao realizar varreduras, você pode enfrentar maior do que o uso de memória normal. Recomenda-se fazer os ajustes necessários em seu sistema para alocar recursos de memória suficientes para o processo de digitalização. Isso pode incluir a configuração de processadores adicionais e a modificação do arquivo de paginação. Garantir a alocação adequada de memória ajudará a concluir a varredura de forma eficiente e eficaz.

Exemplo

Importante

Esse script destina-se a demonstrar o uso das APIs do Windows Update Agent e fornecer um exemplo de como os desenvolvedores podem usar essas APIs para resolver problemas. Esse script não se destina a código de produção e o script em si não é suportado pela Microsoft (embora as APIs subjacentes do Windows Update Agent sejam suportadas).

 

Set updateSession = CreateObject("Microsoft.Update.Session")
updateSession.ClientApplicationID = "Sample Script"

'Get update title to search for
WScript.Echo "Enter the title of the update: " & _
"(for example, Update for Windows Rights Management client 1.0)"
updateTitle = WScript.StdIn.Readline

WScript.Echo vbCRLF & "Searching for: " & updateTitle & "..."

Set updateSearcher = updateSession.CreateupdateSearcher()

'Search for all software updates, already installed and not installed
Set searchResult = _
updateSearcher.Search("Type='Software'")

Set updateToInstall = CreateObject("Microsoft.Update.UpdateColl")

updateIsApplicable = False

'Cycle through search results to look for the update title
For i = 0 To searchResult.Updates.Count-1
   Set update = searchResult.Updates.Item(i)
   If UCase(update.Title) = UCase(updateTitle) Then
   'Update in list of applicable updates 
   'Determine if it is already installed or not
      If update.IsInstalled = False Then
         WScript.Echo vbCRLF & _
         "Result: Update applicable, not installed."
         updateIsApplicable = True
         updateToInstall.Add(update)
      Else 
         'Update is installed so notify user and quit
         WScript.Echo vbCRLF & _
         "Result: Update applicable, already installed."
         updateIsApplicable = True
         WScript.Quit 
      End If
   End If 
Next

If updateIsApplicable = False Then
   WScript.Echo "Result: Update is not applicable to this machine."
   WScript.Quit
End If

WScript.Echo vbCRLF & "Would you like to install now? (Y/N)"
stdInput = WScript.StdIn.Readline
 
If (strInput = "N" or strInput = "n") Then 
   WScript.Quit
ElseIf  (stdInput = "Y" OR stdInput = "y") Then
   'Download update
   Set downloader = updateSession.CreateUpdateDownloader() 
   downloader.Updates = updateToInstall
   WScript.Echo vbCRLF & "Downloading..."
   Set downloadResult = downloader.Download()
   WScript.Echo "Download Result: " & downloadResult.ResultCode
  
   'Install Update
   Set installer = updateSession.CreateUpdateInstaller()
   WScript.Echo vbCRLF & "Installing..."
   installer.Updates = updateToInstall
   Set installationResult = installer.Install()
  
   'Output the result of the installation
   WScript.Echo "Installation Result: " & _
   installationResult.ResultCode
   WScript.Echo "Reboot Required: " & _
   installationResult.RebootRequired 
End If