Freigeben über


Suchen, Herunterladen und Installieren bestimmter Updates

Das Skriptbeispiel in diesem Thema zeigt, wie Sie den Windows Update-Agent (WUA) verwenden, um ein bestimmtes Update zu scannen, herunterzuladen und zu installieren. Das Update kann durch seinen Titel angegeben werden.

Im Beispiel wird nach einem bestimmten Software-Update gesucht, das Update heruntergeladen und anschließend das Update installiert. Beispielsweise kann ein Benutzer diese Methode verwenden, um festzustellen, ob ein kritisches Sicherheitsupdate auf einem Computer installiert ist. Wenn das Update nicht installiert ist, kann der Benutzer sicherstellen, dass das Update heruntergeladen und installiert wird. Der Benutzer kann auch sicherstellen, dass er über den Status der Installation benachrichtigt wird.

Das Beispielupdate wird durch den Updatetitel in der Title-Eigenschaft von IUpdate identifiziert. Der Titel des Updates, das in diesem Beispiel vorgeschlagen wird, lautet „Update for Windows Rights Management Client 1.0“.

Hinweis

Informationen zum Suchen, Herunterladen und Installieren aller Updates, die für eine bestimmte Anwendung gelten, finden Sie unter Suchen, Herunterladen und Installieren von Updates.

 

Bevor Sie versuchen, dieses Beispiel auszuführen, beachten Sie Folgendes:

  • WUA muss auf dem Computer installiert sein. Weitere Informationen zum Ermitteln der installierten WUA-Version finden Sie unter Ermitteln der aktuellen Version von WUA.
  • Das Beispiel stellt keine eigene Benutzeroberfläche bereit. WUA fordert den Benutzer auf, den Computer neu zu starten, wenn ein Update einen Neustart erfordert.
  • Das Beispiel kann Updates nur von WUA herunterladen. Es kann keine Updates von einem Software Update Services (SUS)1.0-Server herunterladen.
  • Zum Ausführen dieses Beispiels ist Windows Script Host (WSH) erforderlich. Weitere Informationen zu WSH finden Sie im Abschnitt „WSH“ des Platform Software Development Kit (SDK). Wenn das Beispiel in eine Datei mit dem Namen WUA_SpecificUpdate.vbs kopiert wird, können Sie es ausführen, indem Sie ein Eingabeaufforderungsfenster öffnen und diesen Befehl eingeben: cscript WUA_SpecificUpdate.vbs

Hinweis

Wenn Sie Scans durchführen, können Sie eine höhere als die normale Speicherauslastung erfahren. Es wird empfohlen, erforderliche Anpassungen an Ihrem System vorzunehmen, um ausreichende Speicherressourcen für den Scanvorgang zuzuweisen. Dies kann das Konfigurieren zusätzlicher Prozessoren und das Ändern der Seitendatei umfassen. Die Sicherstellung einer angemessenen Speicherzuweisung hilft bei der effizienten und effektiven Durchführung des Scans.

Beispiel

Wichtig

Dieses Skript soll die Verwendung der Agent-APIs von Windows Update veranschaulichen und als Beispiel dafür dienen, wie Entwickler*innen diese APIs bei der Problembehandlung verwenden können. Dieses Skript ist nicht als Produktionscode vorgesehen. Es wird außerdem nicht von Microsoft unterstützt, obwohl die zugrunde liegenden Agent-APIs von Windows Update unterstützt werden.

 

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