Condividi tramite


Ricerca, download e installazione di Aggiornamenti specifici

L'esempio di scripting di questo argomento illustra come usare Windows Update Agent (WUA) per analizzare, scaricare e installare un aggiornamento specifico. L'aggiornamento può essere specificato dal titolo.

L'esempio cerca un aggiornamento software specifico, scarica l'aggiornamento e quindi installa l'aggiornamento. Ad esempio, un utente può usare questo metodo per determinare se un aggiornamento di sicurezza critico è installato in un computer. Se l'aggiornamento non è installato, l'utente può assicurarsi che l'aggiornamento venga scaricato e installato. L'utente può anche assicurarsi di ricevere una notifica sullo stato dell'installazione.

L'aggiornamento di esempio è identificato dal titolo dell'aggiornamento nella proprietà Title di IUpdate. Il titolo dell'aggiornamento suggerito in questo esempio è "Update for Windows Rights Management client 1.0".

Nota

Per informazioni su come cercare, scaricare e installare tutti gli aggiornamenti applicabili a un'applicazione specifica, vedi Ricerca, download e installazione di Aggiornamenti.

 

Prima di tentare di eseguire questo esempio, tenere presente quanto segue:

  • WuA deve essere installato nel computer. Per altre info su come determinare la versione di WUA installata, vedi Determinazione della versione corrente di WUA.
  • L'esempio non fornisce la propria interfaccia utente. WuA chiede all'utente di riavviare il computer se un aggiornamento richiede un riavvio.
  • L'esempio può scaricare gli aggiornamenti solo da WUA. Non è possibile scaricare gli aggiornamenti da un server SUS (Software Update Services) 1.0.
  • L'esecuzione di questo esempio richiede Windows Script Host (WSH). Per altre informazioni su WSH, vedi la sezione WSH di Platform Software Development Kit (SDK). Se l'esempio viene copiato in un file denominato WUA_SpecificUpdate.vbs, è possibile eseguirlo aprendo una finestra del prompt dei comandi e digitando questo comando: cscript WUA_SpecificUpdate.vbs

Nota

Quando si eseguono analisi, è possibile che si verifichi un utilizzo di memoria superiore al normale. È consigliabile apportare modifiche necessarie al sistema per allocare risorse di memoria sufficienti per il processo di analisi. Ciò può includere la configurazione di processori aggiuntivi e la modifica del file di pagina. Garantire un'allocazione di memoria adeguata consentirà di completare l'analisi in modo efficiente ed efficace.

Esempio

Importante

Questo script è progettato per illustrare l'uso delle API dell'agente di Windows Update e fornire un esempio di come gli sviluppatori possono usare queste API per risolvere i problemi. Questo script non è destinato al codice di produzione e lo script stesso non è supportato da Microsoft (anche se le API dell'agente di Windows Update sottostanti sono supportate).

 

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