Recherche, téléchargement et installation de mises à jour spécifiques
L'exemple de script de ce sujet vous indique comment utiliser l'agent Windows Update (WUA) pour analyser, télécharger et installer une mise à jour spécifique. La mise à jour peut être spécifiée par son titre.
L'exemple recherche une mise à jour de logiciel spécifique, télécharge la mise à jour, puis l'installe. Par exemple, un utilisateur peut utiliser cette méthode pour déterminer si un correctif de sécurité critique est installé sur un ordinateur. Si la mise à jour n'est pas installée, l'utilisateur peut alors veiller au téléchargement et à l'installation de la mise à jour. L'utilisateur peut également veiller à être informé de l'état de l'installation.
L'exemple de mise à jour est identifié par le titre de mise à jour dans Title Property of IUpdate. Le titre de la mise à jour suggérée dans cet exemple est « Update for Windows Rights Management client 1.0. »
Remarque
Pour plus d'informations sur la recherche, le téléchargement et l'installation de toutes les mises à jour correspondant à une application spécifique, consultez recherche, téléchargement et installation de mises à jour.
Avant d'essayer d'exécuter cet exemple, notez les points suivants :
- WUA doit être installé sur l'ordinateur. Pour plus d'informations sur la façon de déterminer la version de WUA installée, consultez Détermination de la version actuelle de WUA.
- L'exemple ne fournit pas son propre interface utilisateur. WUA invite l'utilisateur à redémarrer l'ordinateur si une mise à jour nécessite un redémarrage.
- L'exemple ne peut télécharger que les mises à jour à partir de WUA. Il ne peut pas télécharger les mises à jour à partir d'un serveur SUS (Software Update Services) 1.0.
- L'exécution de cet exemple nécessite l'environnement d'exécution de scripts WSH (Windows Script Host). Pour plus d'informations sur WSH, consultez la section WSH du kit de développement logiciel (SDK). Si l'exemple est copié dans un fichier nommé WUA_SpecificUpdate.vbs, vous pouvez l'exécuter en ouvrant une fenêtre d'invite de commandes et en tapant cette commande : cscript WUA_SpecificUpdate.vbs
Remarque
Lorsque vous effectuez des analyses, vous pouvez constater une utilisation de la mémoire supérieure à la normale. Il est recommandé de procéder aux ajustements nécessaires sur votre système afin d’allouer suffisamment de ressources mémoire pour le processus d’analyse. Cela peut inclure la configuration de processeurs supplémentaires et la modification du fichier d’échange. L’allocation d’une quantité de mémoire suffisante permettra d’effectuer l’analyse de manière efficace et efficiente.
Exemple
Important
Ce script est destiné à illustrer l'utilisation des API de l'agent Windows Update, et fournit un exemple de la façon dont les développeurs peuvent utiliser ces API pour résoudre les problèmes. Ce script n'est pas destiné à être du code de production, et n'est pas pris en charge par Microsoft (bien que les API de l'agent Windows Update sous-jacentes soient prises en charge).
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