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