IUpdateSearcher::Search, méthode (wuapi.h)

Effectue une recherche synchrone pour les mises à jour. La recherche utilise les options de recherche actuellement configurées.

Syntaxe

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

Paramètres

[in] criteria

Chaîne qui spécifie les critères de recherche.

[out] retval

Interface ISearchResult qui contient les éléments suivants :

  • Résultat d’une opération
  • Collection de mises à jour qui correspondent aux critères de recherche

Valeur retournée

Retourne S_OK en cas de réussite. Sinon, retourne un code d’erreur COM ou Windows.

Cette méthode peut également retourner les codes d’erreur suivants.

Code de retour Description
WU_E_LEGACYSERVER
Vous ne pouvez pas rechercher de mises à jour si la propriété ServerSelection de l’interface IUpdateSearcher est définie sur ssManagedServer ou ssDefault, et si le serveur géré sur un ordinateur est un serveur Microsoft Software Update Services (SUS) 1.0.
E_POINTER
Une valeur de paramètre n’est pas valide ou NULL.
WU_E_INVALID_CRITERIA
Il existe un critère de recherche non valide.

Remarques

La chaîne utilisée pour le paramètre criteria doit correspondre à la langue de recherche personnalisée de la méthode Search . La chaîne se compose de critères qui sont évalués pour déterminer les mises à jour à retourner.

Chaque critère spécifie un nom et une valeur de propriété de mise à jour. Avec certaines restrictions, plusieurs critères peuvent être connectés aux opérateurs AND et OR . Les = opérateurs (égal) et != (non égal) sont tous deux pris en charge. Lorsque vous utilisez Windows Update Agent (WUA), l’opérateur != (non égal) ne peut être utilisé qu’avec le critère de type.

La syntaxe des critères de recherche est basée sur la clause WHERE d’une expression de requête SQL. La plupart des critères pris en charge sont directement mappés pour mettre à jour les propriétés. Ces propriétés de mise à jour ressemblent aux éléments d’un document XML virtuel qui contient l’intégralité du catalogue de serveurs. Par exemple, si vous spécifiez une chaîne de critères de recherche « AutoSelectOnWebSites = 1 », la recherche retourne toutes les mises à jour qui ont une propriété AutoSelectOnWebSites avec une valeur de VARIANT_TRUE.

Un seul critère se compose de « Name = Value » ou « Name != Value », où « Name » est l’un des noms de critère pris en charge et « Value » est une chaîne ou un entier. Les opérateurs AND et OR peuvent être utilisés pour connecter plusieurs critères. Toutefois, OR ne peut être utilisé qu’au niveau supérieur des critères de recherche. Par conséquent, « (x=1 et y=1) ou (z=1) » est valide, mais « (x=1) et (y=1 ou z=1) » n’est pas valide.

Les types de valeurs pris en charge sont des entiers et des chaînes. Un entier doit être spécifié en base 10, et les nombres négatifs sont précédés d’un signe moins (-). Une chaîne doit être placée dans une séquence d’échappement et placée entre guillemets simples ('). Toutes les comparaisons de chaînes ne respectent pas la casse, sauf indication contraire.

Le tableau suivant identifie tous les critères de support public dans l’ordre de priorité de l’évaluation. D’autres critères pourraient être ajoutés à cette liste à l’avenir.

Critère Type Opérateurs autorisés Description
Type string =, != Recherche les mises à jour d’un type spécifique, comme « 'Driver' » et « Software ».
DeploymentAction string = Recherche les mises à jour déployées pour une action spécifique, telle qu’une installation ou une désinstallation spécifiée par l’administrateur d’un serveur.

« DeploymentAction='Installation' » recherche les mises à jour déployées pour l’installation sur un ordinateur de destination. « DeploymentAction='Uninstallation' » dépend des autres critères de requête.

« DeploymentAction='Uninstallation' » recherche les mises à jour déployées pour la désinstallation sur un ordinateur de destination. « DeploymentAction='Uninstallation' » dépend des autres critères de requête.

Si ce critère n’est pas spécifié explicitement, chaque groupe de critères joint à un opérateur AND implique « DeploymentAction='Installation' ».

IsAssigned int(bool) = Recherche les mises à jour destinées au déploiement par automatic Mises à jour.

« IsAssigned=1 » recherche les mises à jour destinées au déploiement par automatic Mises à jour, qui dépend des autres critères de requête. Au plus, une mise à jour de pilote windows affectée est retournée pour chaque appareil local sur un ordinateur de destination.

« IsAssigned=0 » recherche les mises à jour qui ne sont pas destinées à être déployées par automatic Mises à jour.

BrowseOnly int(bool) = « BrowseOnly=1 » recherche les mises à jour considérées comme facultatives.

« BrowseOnly=0 » recherche les mises à jour qui ne sont pas considérées comme facultatives.

AutoSelectOnWebsites int(bool) = Recherche les mises à jour où la propriété AutoSelectOnWebSites a la valeur spécifiée.

« AutoSelectOnWebSites=1 » recherche les mises à jour qui sont marquées pour être sélectionnées automatiquement par Windows Update.

« AutoSelectOnWebSites=0 » recherche les mises à jour qui ne sont pas marquées pour les Mises à jour automatiques.

UpdateID string(UUID) =, != Recherche les mises à jour pour lesquelles la valeur de la propriété UpdateIdentity.UpdateID correspond à la valeur spécifiée. Peut être utilisé avec l’opérateur != pour rechercher toutes les mises à jour qui n’ont pas de UpdateIdentity.UpdateID de la valeur spécifiée.

Par exemple, « UpdateID='12345678-9abc-def0-1234-56789abcdef0' » recherche les mises à jour pour UpdateIdentity.UpdateID qui sont égales à 12345678-9abc-def0-1234-56789abcdef0.

Par exemple, « UpdateID!='12345678-9abc-def0-1234-56789abcdef0' » recherche les mises à jour pour UpdateIdentity.UpdateID qui ne sont pas égales à 12345678-9abc-def0-1234-56789abcdef0.

Note Une clause RevisionNumber peut être combinée avec une clause UpdateID qui contient un = opérateur (égal). Toutefois, la clause RevisionNumber ne peut pas être combinée avec une clause UpdateID qui contient l’opérateur != (non égal).
 

Par exemple, « UpdateID='12345678-9abc-def0-1234-56789abcdef0' et RevisionNumber=100 » peuvent être utilisés pour rechercher la mise à jour pour UpdateIdentity.UpdateID égal à 12345678-9abc-def0-1234-56789abcdef0 et dont UpdateIdentity.RevisionNumber est égal à 100.

RevisionNumber int = Recherche les mises à jour pour lesquelles la valeur de la propriété UpdateIdentity.RevisionNumber correspond à la valeur spécifiée.

Par exemple, « RevisionNumber=2 » recherche les mises à jour où UpdateIdentity.RevisionNumber est égal à 2.

Ce critère doit être combiné avec la propriété UpdateID.

Id de catégorie string(uuid) contains Recherche les mises à jour qui appartiennent à une catégorie spécifiée.
IsInstalled int(bool) = Recherche les mises à jour installées sur l’ordinateur de destination.

« IsInstalled=1 » recherche les mises à jour installées sur l’ordinateur de destination.

« IsInstalled=0 » recherche les mises à jour qui ne sont pas installées sur l’ordinateur de destination.

IsHidden int(bool) = Recherche les mises à jour marquées comme masquées sur l’ordinateur de destination.

« IsHidden=1 » recherche les mises à jour marquées comme masquées sur un ordinateur de destination. Lorsque vous utilisez cette clause, vous pouvez définir la propriété UpdateSearcher.IncludePotentiallySupersededUpdates sur VARIANT_TRUE afin qu’une recherche retourne les mises à jour masquées. Les mises à jour masquées peuvent être remplacées par d’autres mises à jour dans les mêmes résultats.

« IsHidden=0 » recherche les mises à jour qui ne sont pas marquées comme masquées. Si la propriété UpdateSearcher.IncludePotentiallySupersededUpdates a la valeur VARIANT_FALSE, il est préférable d’inclure cette clause dans la chaîne de filtre de recherche afin que les mises à jour remplacées par des mises à jour masquées soient incluses dans les résultats de la recherche. VARIANT_FALSE est la valeur par défaut.

IsPresent int(bool) = Lorsqu’il est défini sur 1, recherche les mises à jour présentes sur un ordinateur.

« IsPresent=1 » recherche les mises à jour présentes sur un ordinateur de destination. Si la mise à jour est valide pour un ou plusieurs produits, la mise à jour est considérée comme présente si elle est installée pour un ou plusieurs produits.

« IsPresent=0 » recherche les mises à jour qui ne sont installées pour aucun produit sur un ordinateur de destination.

RebootRequired int(bool) = Recherche les mises à jour qui nécessitent un redémarrage d’un ordinateur pour terminer une installation ou une désinstallation.

« RebootRequired=1 » recherche les mises à jour qui nécessitent le redémarrage d’un ordinateur pour terminer une installation ou une désinstallation.

« RebootRequired=0 » recherche les mises à jour qui ne nécessitent pas de redémarrage d’un ordinateur pour terminer une installation ou une désinstallation.

 

Les critères de recherche par défaut pour une recherche sont les suivants :

( IsInstalled = 0 and IsHidden = 0 )

Pour rechercher toutes les mises à jour masquées (à l’aide de la propriété UpdateSearcher.IncludePotentiallySupersededUpdates définie sur VARIANT_TRUE), utilisez le critère suivant :

 ( IsHidden = 1 )

Spécifications

   
Client minimal pris en charge Windows XP, Windows 2000 Professionnel avec SP3 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003, Windows 2000 Server avec SP3 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wuapi.h
Bibliothèque Wuguid.lib
DLL Wuapi.dll

Voir aussi

IUpdateSearcher