9 out of 15 rated this helpful - Rate this topic

Searching, Downloading, and Installing Specific Updates

The scripting sample in this topic shows you how to use the Windows Update Agent (WUA) to scan, download, and install a specific update. The update can be specified by its title.

The sample searches for a specific software update, downloads the update, and then installs the update. For example, a user can use this method to determine if a critical security update is installed on a computer. If the update is not installed, the user can ensure that the update is downloaded and installed. The user can also ensure that the user is notified about the status of the installation.

The sample update is identified by the update title in Title Property of IUpdateHistoryEntry. The title of the update that is used in this sample is "Update for Windows Rights Management client 1.0."

Note  For information about how to search, download, and install all the updates that apply to a specific application, see Searching, Downloading, and Installing Updates.

Before you attempt to run this sample, note the following:

  • WUA must be installed on the computer. For more information about how to determine the version of WUA that is installed, see Determining the Current Version of WUA.
  • The sample does not provide its own user interface. WUA prompts the user to restart the computer if an update requires a restart.
  • The sample can download updates only from WUA. It cannot download updates from a Software Update Services (SUS) 1.0 server.
  • Running this sample requires Windows Script Host (WSH). For more information about WSH, see the WSH section of the Platform Software Development Kit (SDK). If the sample is copied to a file named WUA_SpecificUpdate.vbs, you can run it by opening a Command Prompt window and by typing the following command at the command prompt.

    cscript WUA_SpecificUpdate.vbs

Example


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

'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


 

 

Send comments about this topic to Microsoft

Build date: 7/7/2011

Did you find this helpful?
(1500 characters remaining)
Community Content Add
Annotations FAQ
Command Line tool WuInstall
With the Version 1.2. of the command line tool WuInstall.exe, which does basically something similar like this script in an command line exe, (http://www.xeox.com/index.php/en/tools/wuinstall) you can search specific updates by

- Title (as above, with support of regular expressions)
- Product
- Severity
- Classification

Furthermore, you can also exclude certain updates by Title