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

Executa uma pesquisa síncrona para atualizações. A pesquisa usa as opções de pesquisa que estão configuradas no momento.

Sintaxe

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

Parâmetros

[in] criteria

Uma cadeia de caracteres que especifica os critérios de pesquisa.

[out] retval

Uma interface ISearchResult que contém o seguinte:

  • O resultado de uma operação
  • Uma coleção de atualizações que correspondem aos critérios de pesquisa

Valor retornado

Retorna S_OK se tiver êxito. Caso contrário, retornará um código de erro COM ou Windows.

Esse método também pode retornar os seguintes códigos de erro.

Código de retorno Descrição
WU_E_LEGACYSERVER
Não é possível pesquisar atualizações se a propriedade ServerSelection da interface IUpdateSearcher estiver definida como ssManagedServer ou ssDefault, e o servidor gerenciado em um computador for um servidor do SUS (Microsoft Software Update Services) 1.0.
E_POINTER
Um valor de parâmetro é inválido ou NULL.
WU_E_INVALID_CRITERIA
Há um critério de pesquisa inválido.

Comentários

A cadeia de caracteres usada para o parâmetro criteria deve corresponder ao idioma de pesquisa personalizado para o método Search . A cadeia de caracteres consiste em critérios que são avaliados para determinar as atualizações a serem retornadas.

Cada critério especifica um nome e valor de propriedade de atualização. Com algumas restrições, vários critérios podem ser conectados com os operadores AND e OR . Os = operadores (igual) e != (não iguais) têm suporte. Quando você usa o WUA (agente de Windows Update), o operador != (não igual) só pode ser usado com o critério de tipo.

A sintaxe de critérios de pesquisa baseia-se na cláusula WHERE de uma expressão de consulta SQL. A maioria dos critérios com suporte é mapeada diretamente para atualizar as propriedades. Essas propriedades de atualização se assemelham aos elementos em um documento XML virtual que contém todo o catálogo de servidores. Por exemplo, se você especificar uma cadeia de caracteres de critérios de pesquisa de "AutoSelectOnWebSites = 1", a pesquisa retornará todas as atualizações que têm uma propriedade AutoSelectOnWebSites com um valor de VARIANT_TRUE.

Um único critério consiste em "Name = Value" ou "Name != Value", em que "Name" é um dos nomes de critério com suporte e "Value" é uma cadeia de caracteres ou um inteiro. Os operadores AND e OR podem ser usados para conectar vários critérios. No entanto, OR só pode ser usado no nível superior dos critérios de pesquisa. Portanto, "(x=1 e y=1) ou (z=1)" é válido, mas "(x=1) e (y=1 ou z=1)" não é válido.

Os tipos de valor com suporte são inteiros e cadeias de caracteres. Um inteiro deve ser especificado na base 10 e os números negativos são prefixados com um sinal de menos (-). Uma cadeia de caracteres deve ser escapada e colocada entre aspas simples ('). Todas as comparações de cadeia de caracteres não diferenciam maiúsculas de minúsculas, a menos que especificado.

A tabela a seguir identifica todos os critérios de suporte público na ordem de precedência de avaliação. Mais critérios podem ser adicionados a essa lista no futuro.

Critério Tipo Operadores permitidos Descrição
Type cadeia de caracteres =, != Localiza atualizações de um tipo específico, como "'Driver'" e "'Software'".
DeploymentAction cadeia de caracteres = Localiza atualizações implantadas para uma ação específica, como uma instalação ou desinstalação especificada pelo administrador de um servidor.

"DeploymentAction='Installation'" localiza atualizações implantadas para instalação em um computador de destino. "DeploymentAction='Uninstallation'" depende dos outros critérios de consulta.

"DeploymentAction='Uninstallation'" localiza atualizações implantadas para desinstalação em um computador de destino. "DeploymentAction='Uninstallation'" depende dos outros critérios de consulta.

Se esse critério não for especificado explicitamente, cada grupo de critérios associado a um operador AND implicará "DeploymentAction='Installation'".

IsAssigned int(bool) = Localiza atualizações destinadas à implantação pelo Atualizações Automático.

"IsAssigned=1" localiza atualizações destinadas à implantação pelo Atualizações Automático, que depende dos outros critérios de consulta. No máximo, uma atualização de driver baseada no Windows atribuída é retornada para cada dispositivo local em um computador de destino.

"IsAssigned=0" localiza atualizações que não se destinam a serem implantadas pelo Atualizações Automático.

BrowseOnly int(bool) = "BrowseOnly=1" localiza atualizações que são consideradas opcionais.

"BrowseOnly=0" localiza atualizações que não são consideradas opcionais.

AutoSelectOnWebSites int(bool) = Localiza atualizações em que a propriedade AutoSelectOnWebSites tem o valor especificado.

"AutoSelectOnWebSites=1" localiza as atualizações sinalizadas para serem selecionadas automaticamente por Windows Update.

"AutoSelectOnWebSites=0" localiza as atualizações que não estão sinalizadas para o Atualizações Automático.

UpdateID string(UUID) =, != Localiza atualizações para as quais o valor da propriedade UpdateIdentity.UpdateID corresponde ao valor especificado. Pode ser usado com o operador != para localizar todas as atualizações que não têm um UpdateIdentity.UpdateID do valor especificado.

Por exemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" localiza atualizações para UpdateIdentity.UpdateID que são iguais a 12345678-9abc-def0-1234-56789abcdef0.

Por exemplo, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" localiza atualizações para UpdateIdentity.UpdateID que não são iguais a 12345678-9abc-def0-1234-56789abcdef0.

Nota Uma cláusula RevisionNumber pode ser combinada com uma cláusula UpdateID que contém um = operador (igual). No entanto, a cláusula RevisionNumber não pode ser combinada com uma cláusula UpdateID que contém o operador != (não igual).
 

Por exemplo, "UpdateID='12345678-9abc-def0-1234-56789abcdef0' e RevisionNumber=100" pode ser usado para localizar a atualização para UpdateIdentity.UpdateID que é igual a 12345678-9abc-def0-1234-56789abcdef0 e cuja UpdateIdentity.RevisionNumber é igual a 100.

RevisionNumber int = Localiza atualizações para as quais o valor da propriedade UpdateIdentity.RevisionNumber corresponde ao valor especificado.

Por exemplo, "RevisionNumber=2" localiza atualizações em que UpdateIdentity.RevisionNumber é igual a 2.

Esse critério deve ser combinado com a propriedade UpdateID.

CategoryIDs string(uuid) contains Localiza atualizações que pertencem a uma categoria especificada.
IsInstalled int(bool) = Localiza atualizações instaladas no computador de destino.

"IsInstalled=1" localiza atualizações instaladas no computador de destino.

"IsInstalled=0" localiza atualizações que não estão instaladas no computador de destino.

IsHidden int(bool) = Localiza atualizações marcadas como ocultas no computador de destino.

"IsHidden=1" localiza atualizações marcadas como ocultas em um computador de destino. Ao usar essa cláusula, você pode definir a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates como VARIANT_TRUE para que uma pesquisa retorne as atualizações ocultas. As atualizações ocultas podem ser substituídas por outras atualizações nos mesmos resultados.

"IsHidden=0" localiza atualizações que não estão marcadas como ocultas. Se a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates estiver definida como VARIANT_FALSE, é melhor incluir essa cláusula na cadeia de caracteres de filtro de pesquisa para que as atualizações substituídas por atualizações ocultas sejam incluídas nos resultados da pesquisa. VARIANT_FALSE é o valor padrão.

IsPresent int(bool) = Quando definido como 1, localiza as atualizações presentes em um computador.

"IsPresent=1" localiza atualizações que estão presentes em um computador de destino. Se a atualização for válida para um ou mais produtos, a atualização será considerada presente se estiver instalada para um ou mais dos produtos.

"IsPresent=0" localiza atualizações que não estão instaladas para nenhum produto em um computador de destino.

RebootRequired int(bool) = Localiza atualizações que exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação.

"RebootRequired=1" localiza atualizações que exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação.

"RebootRequired=0" localiza atualizações que não exigem que um computador seja reiniciado para concluir uma instalação ou desinstalação.

 

Os critérios de pesquisa padrão para uma pesquisa são os seguintes:

( IsInstalled = 0 and IsHidden = 0 )

Para localizar todas as atualizações ocultas (usando a propriedade UpdateSearcher.IncludePotentiallySupersededUpdates definida como VARIANT_TRUE), use o seguinte critério:

 ( IsHidden = 1 )

Requisitos

   
Cliente mínimo com suporte Windows XP, Windows 2000 Professional com SP3 [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003, Windows 2000 Server com SP3 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho wuapi.h
Biblioteca Wuguid.lib
DLL Wuapi.dll

Confira também

IUpdateSearcher