Share via


Método IUpdateSearcher::Search (wuapi.h)

Realiza una búsqueda sincrónica de actualizaciones. La búsqueda usa las opciones de búsqueda que están configuradas actualmente.

Sintaxis

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

Parámetros

[in] criteria

Cadena que especifica los criterios de búsqueda.

[out] retval

Interfaz ISearchResult que contiene lo siguiente:

  • Resultado de una operación
  • Colección de actualizaciones que coinciden con los criterios de búsqueda

Valor devuelto

Devuelve S_OK si se ejecuta correctamente. De lo contrario, devuelve un código de error COM o Windows.

Este método también puede devolver los siguientes códigos de error.

Código devuelto Descripción
WU_E_LEGACYSERVER
No puede buscar actualizaciones si la propiedad ServerSelection de la interfaz IUpdateSearcher está establecida en ssManagedServer o ssDefault, y el servidor administrado de un equipo es un servidor de Microsoft Software Update Services (SUS) 1.0.
E_POINTER
Un valor de parámetro no es válido o NULL.
WU_E_INVALID_CRITERIA
Hay un criterio de búsqueda no válido.

Observaciones

La cadena que se usa para el parámetro criteria debe coincidir con el idioma de búsqueda personalizado para el método Search . La cadena consta de criterios que se evalúan para determinar las actualizaciones que se van a devolver.

Cada criterio especifica un nombre y un valor de propiedad de actualización. Con algunas restricciones, se pueden conectar varios criterios con los operadores AND y OR . Se admiten los = operadores (iguales) y != (no iguales). Cuando se usa Windows Update Agente (WUA), el operador != (no igual) solo se puede usar con el criterio de tipo.

La sintaxis de los criterios de búsqueda se basa en la cláusula WHERE de una expresión de consulta SQL. La mayoría de los criterios admitidos se asignan directamente a las propiedades de actualización. Estas propiedades de actualización se asemejan a los elementos de un documento XML virtual que contiene todo el catálogo de servidores. Por ejemplo, si especifica una cadena de criterios de búsqueda de "AutoSelectOnWebSites = 1", la búsqueda devuelve todas las actualizaciones que tienen una propiedad AutoSelectOnWebSites con un valor de VARIANT_TRUE.

Un único criterio consta de "Valor de nombre = " o "Nombre != Valor", donde "Name" es uno de los nombres de criterio admitidos y "Value" es una cadena o un entero. Los operadores AND y OR se pueden usar para conectar varios criterios. Sin embargo, OR solo se puede usar en el nivel superior de los criterios de búsqueda. Por lo tanto, "(x=1 e y=1) o (z=1)" es válido, pero "(x=1) y (y=1 o z=1)" no es válido.

Los tipos de valor admitidos son enteros y cadenas. Se debe especificar un entero en base 10 y los números negativos tienen como prefijo un signo menos (-). Una cadena debe tener caracteres de escape y incluirse entre comillas simples ('). Todas las comparaciones de cadenas no distinguen mayúsculas de minúsculas a menos que se especifiquen.

En la tabla siguiente se identifican todos los criterios de soporte técnico público en el orden de prioridad de evaluación. Se pueden agregar más criterios a esta lista en el futuro.

Criterio Tipo Operadores permitidos Descripción
Tipo string =, != Busca actualizaciones de un tipo específico, como "'Driver'" y "'Software'".
DeploymentAction string = Busca actualizaciones que se implementan para una acción específica, como una instalación o desinstalación que especifica el administrador de un servidor.

"DeploymentAction='Installation'" busca actualizaciones que se implementan para la instalación en un equipo de destino. "DeploymentAction='Uninstallation'" depende de los demás criterios de consulta.

"DeploymentAction='Uninstallation'" busca actualizaciones que se implementan para la desinstalación en un equipo de destino. "DeploymentAction='Uninstallation'" depende de los demás criterios de consulta.

Si no se especifica explícitamente este criterio, cada grupo de criterios que se une a un operador AND implica "DeploymentAction='Installation'".

IsAssigned int(bool) = Busca actualizaciones destinadas a la implementación por parte de Automatic Novedades.

"IsAssigned=1" busca actualizaciones destinadas a la implementación por parte de Automatic Novedades, que depende de los demás criterios de consulta. Como máximo, se devuelve una actualización de controlador basada en Windows asignada para cada dispositivo local en un equipo de destino.

"IsAssigned=0" busca actualizaciones que no están diseñadas para implementarse mediante la Novedades automática.

BrowseOnly int(bool) = "BrowseOnly=1" busca actualizaciones que se consideran opcionales.

"BrowseOnly=0" busca actualizaciones que no se consideran opcionales.

AutoSelectOnWebSites int(bool) = Busca actualizaciones en las que la propiedad AutoSelectOnWebSites tiene el valor especificado.

"AutoSelectOnWebSites=1" busca actualizaciones marcadas para que se seleccionen automáticamente mediante Windows Update.

"AutoSelectOnWebSites=0" busca actualizaciones que no están marcadas para la Novedades automática.

UpdateID string(UUID) =, != Busca actualizaciones para las que el valor de la propiedad UpdateIdentity.UpdateID coincide con el valor especificado. Se puede usar con el operador != para buscar todas las actualizaciones que no tienen un updateIdentity.UpdateID del valor especificado.

Por ejemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" busca actualizaciones de UpdateIdentity.UpdateID iguales a 12345678-9abc-def0-1234-56789abcdef0.

Por ejemplo, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" busca actualizaciones para UpdateIdentity.UpdateID que no son iguales a 12345678-9abc-def0-1234-56789abcdef0.

Nota Una cláusula RevisionNumber se puede combinar con una cláusula UpdateID que contiene un = operador (igual). Sin embargo, la cláusula RevisionNumber no se puede combinar con una cláusula UpdateID que contenga el operador != (no igual).
 

Por ejemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0' y RevisionNumber=100" se pueden usar para buscar la actualización para UpdateIdentity.UpdateID que es igual a 12345678-9abc-def0-1234-56789abcdef0 y cuyo UpdateIdentity.RevisionNumber es igual a 100.

RevisionNumber int = Busca actualizaciones para las que el valor de la propiedad UpdateIdentity.RevisionNumber coincide con el valor especificado.

Por ejemplo, "RevisionNumber=2" busca actualizaciones en las que UpdateIdentity.RevisionNumber es igual a 2.

Este criterio debe combinarse con la propiedad UpdateID.

Identificadores de categoría string(uuid) contains Busca actualizaciones que pertenecen a una categoría especificada.
IsInstalled int(bool) = Busca actualizaciones instaladas en el equipo de destino.

"IsInstalled=1" busca actualizaciones instaladas en el equipo de destino.

"IsInstalled=0" busca actualizaciones que no están instaladas en el equipo de destino.

IsHidden int(bool) = Busca actualizaciones marcadas como ocultas en el equipo de destino.

"IsHidden=1" busca actualizaciones marcadas como ocultas en un equipo de destino. Al usar esta cláusula, puede establecer la propiedad UpdateSearcher.IncludePotentiallySupersededUpdates en VARIANT_TRUE para que una búsqueda devuelva las actualizaciones ocultas. Las actualizaciones ocultas pueden sustituirse por otras actualizaciones en los mismos resultados.

"IsHidden=0" busca actualizaciones que no están marcadas como ocultas. Si la propiedad UpdateSearcher.IncludePotentiallySupersededUpdates se establece en VARIANT_FALSE, es mejor incluir esa cláusula en la cadena de filtro de búsqueda para que las actualizaciones reemplazadas por actualizaciones ocultas se incluyan en los resultados de búsqueda. VARIANT_FALSE es el valor predeterminado.

IsPresent int(bool) = Cuando se establece en 1, busca actualizaciones presentes en un equipo.

"IsPresent=1" busca actualizaciones presentes en un equipo de destino. Si la actualización es válida para uno o varios productos, la actualización se considera presente si está instalada para uno o varios de los productos.

"IsPresent=0" busca actualizaciones que no están instaladas para ningún producto en un equipo de destino.

RebootRequired int(bool) = Busca actualizaciones que requieren que se reinicie un equipo para completar una instalación o desinstalación.

"RebootRequired=1" busca actualizaciones que requieren que se reinicie un equipo para completar una instalación o desinstalación.

"RebootRequired=0" busca actualizaciones que no requieren que se reinicie un equipo para completar una instalación o desinstalación.

 

Los criterios de búsqueda predeterminados para una búsqueda son los siguientes:

( IsInstalled = 0 and IsHidden = 0 )

Para buscar todas las actualizaciones ocultas (mediante la propiedad UpdateSearcher.IncludePotentiallySupersededUpdates establecida en VARIANT_TRUE), use el siguiente criterio:

 ( IsHidden = 1 )

Requisitos

   
Cliente mínimo compatible Windows XP, Windows 2000 Professional con SP3 [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003, Windows 2000 Server con SP3 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado wuapi.h
Library Wuguid.lib
Archivo DLL Wuapi.dll

Consulte también

IUpdateSearcher