IUpdateSearcher::Search-Methode (wuapi.h)

Führt eine synchrone Suche nach Updates aus. Die Suche verwendet die derzeit konfigurierten Suchoptionen.

Syntax

HRESULT Search(
  [in]  BSTR          criteria,
  [out] ISearchResult **retval
);

Parameter

[in] criteria

Eine Zeichenfolge, die die Suchkriterien angibt.

[out] retval

Eine ISearchResult-Schnittstelle , die Folgendes enthält:

  • Das Ergebnis eines Vorgangs
  • Eine Sammlung von Updates, die den Suchkriterien entsprechen

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK zurück. Andernfalls wird ein COM- oder Windows-Fehlercode zurückgegeben.

Diese Methode kann auch die folgenden Fehlercodes zurückgeben.

Rückgabecode Beschreibung
WU_E_LEGACYSERVER
Sie können nicht nach Updates suchen, wenn die ServerSelection-Eigenschaft der IUpdateSearcher-Schnittstelle auf ssManagedServer oder ssDefault festgelegt ist und der verwaltete Server auf einem Computer ein Microsoft Software Update Services (SUS) 1.0-Server ist.
E_POINTER
Ein Parameterwert ist ungültig oder NULL.
WU_E_INVALID_CRITERIA
Es gibt ungültige Suchkriterien.

Hinweise

Die Zeichenfolge, die für den Criteria-Parameter verwendet wird, muss mit der benutzerdefinierten Suchsprache für die Search-Methode übereinstimmen. Die Zeichenfolge besteht aus Kriterien, die ausgewertet werden, um die zurückzugebenden Updates zu bestimmen.

Jedes Kriterium gibt einen Updateeigenschaftennamen und -wert an. Mit einigen Einschränkungen können mehrere Kriterien mit den Operatoren AND und OR verbunden werden. Die = Operatoren (gleich) und != (nicht gleich) werden unterstützt. Wenn Sie Windows Update Agent (WUA) verwenden, kann der !=-Operator (nicht gleich) nur mit dem Typkriterium verwendet werden.

Die Suchkriteriensyntax basiert auf der WHERE-Klausel eines SQL-Abfrageausdrucks. Die meisten unterstützten Kriterien werden direkt zum Aktualisieren von Eigenschaften zugeordnet. Diese Updateeigenschaften ähneln den Elementen in einem virtuellen XML-Dokument, das den gesamten Serverkatalog enthält. Wenn Sie beispielsweise eine Suchkriterienzeichenfolge von "AutoSelectOnWebSites = 1" angeben, gibt die Suche alle Updates zurück, die über eine AutoSelectOnWebSites-Eigenschaft mit dem Wert VARIANT_TRUE verfügen.

Ein einzelnes Kriterium besteht aus "Name = Value" oder "Name != Value", wobei "Name" einer der unterstützten Kriteriennamen und "Value" eine Zeichenfolge oder eine ganze Zahl ist. Die OPERATOREN AND und OR können verwendet werden, um mehrere Kriterien zu verbinden. OR kann jedoch nur auf der obersten Ebene der Suchkriterien verwendet werden. Daher ist "(x=1 und y=1) oder (z=1)" gültig, aber "(x=1) und (y=1 oder z=1)" ist ungültig.

Die unterstützten Werttypen sind Ganze Zahlen und Zeichenfolgen. In Basis 10 muss eine ganze Zahl angegeben werden, und negativen Zahlen wird ein Minuszeichen (-) vorangestellt. Eine Zeichenfolge muss mit einem Escapezeichen versehen und in einfache Anführungszeichen (') eingeschlossen werden. Bei allen Zeichenfolgenvergleichen wird die Groß-/Kleinschreibung nicht beachtet, sofern nicht angegeben.

In der folgenden Tabelle werden alle öffentlichen Unterstützungskriterien in der Reihenfolge der Bewertungsrangfolge angegeben. Dieser Liste können in Zukunft weitere Kriterien hinzugefügt werden.

Kriterium type Zulässige Operatoren BESCHREIBUNG
type string =, != Sucht nach Updates eines bestimmten Typs, z. B. "Treiber" und "Software".
DeploymentAction string = Sucht nach Updates, die für eine bestimmte Aktion bereitgestellt werden, z. B. eine Installation oder Deinstallation, die der Administrator eines Servers angibt.

"DeploymentAction='Installation'" findet Updates, die für die Installation auf einem Zielcomputer bereitgestellt werden. "DeploymentAction='Deinstallation'" hängt von den anderen Abfragekriterien ab.

"DeploymentAction='Deinstallation'" findet Updates, die für die Deinstallation auf einem Zielcomputer bereitgestellt werden. "DeploymentAction='Deinstallation'" hängt von den anderen Abfragekriterien ab.

Wenn dieses Kriterium nicht explizit angegeben ist, impliziert jede Gruppe von Kriterien, die einem AND-Operator zugeordnet ist, "DeploymentAction='Installation'".

IsAssigned int(bool) = Sucht nach Updates, die für die Bereitstellung durch automatische Updates vorgesehen sind.

"IsAssigned=1" findet Updates, die für die Bereitstellung durch automatische Updates vorgesehen sind, die von den anderen Abfragekriterien abhängig sind. Für jedes lokale Gerät auf einem Zielcomputer wird höchstens ein zugewiesenes Windows-basiertes Treiberupdate zurückgegeben.

"IsAssigned=0" findet Updates, die nicht für die Bereitstellung durch automatische Updates vorgesehen sind.

BrowseOnly int(bool) = "BrowseOnly=1" findet Updates, die als optional gelten.

"BrowseOnly=0" findet Updates, die nicht als optional gelten.

AutoSelectOnWebSites int(bool) = Sucht nach Updates, bei denen die AutoSelectOnWebSites-Eigenschaft den angegebenen Wert aufweist.

"AutoSelectOnWebSites=1" findet Updates, die automatisch von Windows Update ausgewählt werden.

"AutoSelectOnWebSites=0" findet Updates, die nicht für automatische Updates gekennzeichnet sind.

UpdateID string(UUID) =, != Sucht nach Updates, für die der Wert der UpdateIdentity.UpdateID-Eigenschaft mit dem angegebenen Wert übereinstimmt. Kann mit dem != -Operator verwendet werden, um alle Updates zu finden, die nicht über eine UpdateIdentity.UpdateID des angegebenen Werts verfügen.

Beispielsweise findet "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" Updates für UpdateIdentity.UpdateID , die 12345678-9abc-def0-1234-56789abcdef0 entsprechen.

Beispielsweise findet "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" Updates für UpdateIdentity.UpdateID , die nicht gleich 12345678-9abc-def0-1234-56789abcdef0 sind.

Hinweis Eine RevisionNumber-Klausel kann mit einer UpdateID-Klausel kombiniert werden, die einen = (gleich)-Operator enthält. Die RevisionNumber-Klausel kann jedoch nicht mit einer UpdateID-Klausel kombiniert werden, die den != -Operator (not-equal) enthält.
 

Beispielsweise können "UpdateID='12345678-9abc-def0-1234-56789abcdef0' und RevisionNumber=100" verwendet werden, um das Update für zu finden. UpdateIdentity.UpdateID , die 12345678-9abc-def0-1234-56789abcdef0 entspricht und dessen UpdateIdentity.RevisionNumber gleich 100 ist.

RevisionNumber int = Sucht nach Updates, für die der Wert der UpdateIdentity.RevisionNumber-Eigenschaft mit dem angegebenen Wert übereinstimmt.

Beispielsweise findet "RevisionNumber=2" Updates, bei denen UpdateIdentity.RevisionNumber gleich 2 ist.

Dieses Kriterium muss mit der UpdateID-Eigenschaft kombiniert werden.

CategoryIDs string(uuid) contains Sucht nach Updates, die zu einer angegebenen Kategorie gehören.
IsInstalled int(bool) = Sucht nach Updates, die auf dem Zielcomputer installiert sind.

"IsInstalled=1" findet Updates, die auf dem Zielcomputer installiert sind.

"IsInstalled=0" findet Updates, die nicht auf dem Zielcomputer installiert sind.

IsHidden int(bool) = Findet Updates, die auf dem Zielcomputer als ausgeblendet markiert sind.

"IsHidden=1" findet Updates, die auf einem Zielcomputer als ausgeblendet markiert sind. Wenn Sie diese Klausel verwenden, können Sie die UpdateSearcher.IncludePotentiallySupersedUpdates-Eigenschaft auf VARIANT_TRUE festlegen, sodass eine Suche die ausgeblendeten Updates zurückgibt. Die ausgeblendeten Updates werden möglicherweise durch andere Updates in den gleichen Ergebnissen ersetzt.

"IsHidden=0" findet Updates, die nicht als ausgeblendet markiert sind. Wenn die UpdateSearcher.IncludePotentiallySupersedUpdates-Eigenschaft auf VARIANT_FALSE festgelegt ist, empfiehlt es sich, diese Klausel in die Suchfilterzeichenfolge aufzunehmen, damit die Updates, die durch ausgeblendete Updates ersetzt werden, in den Suchergebnissen enthalten sind. VARIANT_FALSE ist der Standardwert.

IsPresent int(bool) = Wenn sie auf 1 festgelegt ist, finden Sie Updates, die auf einem Computer vorhanden sind.

"IsPresent=1" findet Updates, die auf einem Zielcomputer vorhanden sind. Wenn das Update für mindestens ein Produkt gültig ist, gilt das Update als vorhanden, wenn es für mindestens ein Produkt installiert ist.

"IsPresent=0" findet Updates, die für kein Produkt auf einem Zielcomputer installiert sind.

RebootRequired int(bool) = Sucht Nach Updates, die einen Neustart eines Computers erfordern, um eine Installation oder Deinstallation abzuschließen.

"RebootRequired=1" findet Updates, die einen Neustart eines Computers erfordern, um eine Installation oder Deinstallation abzuschließen.

"RebootRequired=0" findet Updates, für die kein Neustart eines Computers erforderlich ist, um eine Installation oder Deinstallation abzuschließen.

 

Die Standardsuchkriterien für eine Suche sind wie folgt:

( IsInstalled = 0 and IsHidden = 0 )

Verwenden Sie das folgende Kriterium, um alle ausgeblendeten Updates zu finden (indem Sie die UpdateSearcher.IncludePotentiallySupersedUpdates-Eigenschaft verwenden, die auf VARIANT_TRUE festgelegt ist:

 ( IsHidden = 1 )

Anforderungen

   
Unterstützte Mindestversion (Client) Windows XP, Windows 2000 Professional mit SP3 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003, Windows 2000 Server mit SP3 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wuapi.h
Bibliothek Wuguid.lib
DLL Wuapi.dll

Weitere Informationen

IUpdateSearcher