Поделиться через


Метод IUpdateSearcher::Search (wuapi.h)

Выполняет синхронный поиск обновлений. Для поиска используются параметры поиска, настроенные в данный момент.

Синтаксис

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

Параметры

[in] criteria

Строка, указывающая условия поиска.

[out] retval

Интерфейс ISearchResult , содержащий следующее:

  • Результат операции
  • Коллекция обновлений, соответствующих условиям поиска.

Возвращаемое значение

В случае успешного выполнения возвращает S_OK . В противном случае возвращает код ошибки COM или Windows.

Этот метод также может возвращать следующие коды ошибок.

Код возврата Описание
WU_E_LEGACYSERVER
Невозможно выполнить поиск обновлений, если для свойства ServerSelection интерфейса IUpdateSearcher задано значение ssManagedServer или ssDefault, а управляемым сервером на компьютере является сервер Служб обновления программного обеспечения Майкрософт (SUS) 1.0.
E_POINTER
Недопустимое значение параметра или ЗНАЧЕНИЕ NULL.
WU_E_INVALID_CRITERIA
Существуют недопустимые условия поиска.

Комментарии

Строка, используемая для параметра условия, должна соответствовать языку пользовательского поиска для метода Search . Строка состоит из критериев, которые оцениваются для определения возвращаемых обновлений.

Каждый критерий задает имя и значение свойства обновления. С некоторыми ограничениями с операторами AND и OR можно связать несколько критериев. Поддерживаются = операторы (equal) и != (не равно). При использовании агента клиентский компонент Центра обновления Windows (WUA) оператор != (не равно) можно использовать только с критерием типа.

Синтаксис условий поиска основан на предложении WHERE выражения SQL-запроса. Большинство поддерживаемых условий напрямую сопоставляют со свойствами обновления. Эти свойства обновления напоминают элементы виртуального XML-документа, содержащего весь каталог сервера. Например, если указать строку условий поиска "AutoSelectOnWebSites = 1", поиск вернет все обновления, имеющие свойство AutoSelectOnWebSites со значением VARIANT_TRUE.

Один критерий состоит из "Name = Value" или "Name != Value", где "Name" является одним из поддерживаемых имен критериев, а "Value" — строкой или целым числом. Операторы AND и OR можно использовать для соединения нескольких критериев. Однако ИЛИ можно использовать только на верхнем уровне условий поиска. Таким образом, "(x=1 и y=1) или (z=1)" является допустимым, но "(x=1) и (y=1 или z=1)" является недопустимым.

Поддерживаемые типы значений — это целые числа и строки. Целое число должно быть указано в базе 10, а отрицательные числа имеют префикс со знаком минус (-). Строка должна быть экранирована и заключена в одинарные кавычки ('). Если не указано, все сравнения строк не учитывают регистр.

В следующей таблице указаны все критерии общедоступной поддержки в порядке приоритета оценки. В будущем в этот список могут быть добавлены дополнительные критерии.

Критерий Тип Допустимые операторы Описание
Тип строка =, != Находит обновления определенного типа, например "Драйвер" и "Программное обеспечение".
DeploymentAction строка = Находит обновления, развернутые для определенного действия, например установки или удаления, указанного администратором сервера.

DeploymentAction='Installation'" находит обновления, развернутые для установки на конечном компьютере. DeploymentAction='Uninstallation'" зависит от других критериев запроса.

DeploymentAction='Uninstallation'" находит обновления, развернутые для удаления на конечном компьютере. DeploymentAction='Uninstallation'" зависит от других критериев запроса.

Если этот критерий не указан явным образом, каждая группа условий, присоединенная к оператору AND , подразумевает "DeploymentAction='Installation'".

IsAssigned int(bool) = Находит обновления, предназначенные для развертывания автоматическим Обновления.

"IsAssigned=1" находит обновления, предназначенные для развертывания с помощью автоматического Обновления, что зависит от других критериев запроса. Для каждого локального устройства на конечном компьютере возвращается не более одного назначенного обновления драйверов windows.

"IsAssigned=0" находит обновления, которые не предназначены для развертывания с помощью автоматического Обновления.

BrowseOnly int(bool) = "BrowseOnly=1" находит обновления, которые считаются необязательными.

"BrowseOnly=0" находит обновления, которые не считаются необязательными.

AutoSelectOnWebSites int(bool) = Находит обновления, в которых свойство AutoSelectOnWebSites имеет указанное значение.

"AutoSelectOnWebSites=1" находит обновления, помеченные для автоматического выбора клиентский компонент Центра обновления Windows.

AutoSelectOnWebSites=0 находит обновления, которые не помечены для автоматического Обновления.

UpdateID string(UUID) =, != Находит обновления, для которых значение свойства UpdateIdentity.UpdateID совпадает с указанным значением. Можно использовать с оператором != для поиска всех обновлений, у которых нет идентификатора UpdateIdentity.UpdateID указанного значения.

Например, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" находит обновления для UpdateIdentity.UpdateID , равные 12345678-9abc-def0-1234-56789abcdef0.

Например, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" находит обновления для UpdateIdentity.UpdateID , которые не равны 12345678-9abc-def0-1234-56789abcdef0.

Примечание Предложение RevisionNumber можно объединить с предложением UpdateID, содержащим = оператор (equal). Однако предложение RevisionNumber не может быть объединено с предложением UpdateID, содержащим оператор != (не равно).
 

Например, для поиска обновления для Обновления можно использовать UpdateID='12345678-9abc-def0-1234-56789abcdef0' и RevisionNumber= 100.Identity.UpdateID , равное 12345678-9abc-def0-1234-56789abcdef0, а значение параметра UpdateIdentity.RevisionNumber равно 100.

RevisionNumber int = Находит обновления, для которых значение свойства UpdateIdentity.RevisionNumber совпадает с указанным значением.

Например, "RevisionNumber=2" находит обновления, где UpdateIdentity.RevisionNumber равно 2.

Это условие должно быть объединено со свойством UpdateID.

Идентификаторы категорий string(uuid) contains Находит обновления, относящиеся к указанной категории.
IsInstalled int(bool) = Находит обновления, установленные на конечном компьютере.

"IsInstalled=1" находит обновления, установленные на конечном компьютере.

IsInstalled=0 находит обновления, которые не установлены на конечном компьютере.

IsHidden int(bool) = Находит обновления, помеченные как скрытые на конечном компьютере.

"IsHidden=1" находит обновления, помеченные как скрытые на конечном компьютере. При использовании этого предложения можно задать для свойства UpdateSearcher.IncludePotentiallySupersededUpdatesзначение VARIANT_TRUE , чтобы поиск возвращал скрытые обновления. Скрытые обновления могут быть заменены другими обновлениями в том же результатах.

IsHidden=0 находит обновления, которые не помечены как скрытые. Если свойству UpdateSearcher.IncludePotentiallySupersededUpdates присвоено значение VARIANT_FALSE, лучше включить это предложение в строку фильтра поиска, чтобы обновления, заменяемые скрытыми обновлениями, включались в результаты поиска. VARIANT_FALSE является значением по умолчанию.

IsPresent int(bool) = Если задано значение 1, выполняет поиск обновлений, присутствующих на компьютере.

"IsPresent=1" находит обновления, имеющиеся на конечном компьютере. Если обновление действительно для одного или нескольких продуктов, оно считается установленным для одного или нескольких продуктов.

"IsPresent=0" находит обновления, которые не установлены для какого-либо продукта на конечном компьютере.

RebootRequired int(bool) = Находит обновления, требующие перезагрузки компьютера для завершения установки или удаления.

"RebootRequired=1" находит обновления, требующие перезагрузки компьютера для завершения установки или удаления.

"RebootRequired=0" находит обновления, которые не требуют перезагрузки компьютера для завершения установки или удаления.

 

Критерии поиска по умолчанию для поиска:

( IsInstalled = 0 and IsHidden = 0 )

Чтобы найти все скрытые обновления (с помощью свойства UpdateSearcher.IncludePotentiallySupersedUpdates , заданного в VARIANT_TRUE), используйте следующий критерий:

 ( IsHidden = 1 )

Требования

   
Минимальная версия клиента Windows XP, Windows 2000 Профессиональная с пакетом обновления 3 (SP3) [только классические приложения]
Минимальная версия сервера Windows Server 2003, Windows 2000 Server с пакетом обновления 3 (SP3) [только классические приложения]
Целевая платформа Windows
Header wuapi.h
Библиотека Wuguid.lib
DLL Wuapi.dll

См. также раздел

IUpdateSearcher