Метод IUpdateSearcher::Search (wuapi.h)
Выполняет синхронный поиск обновлений. Для поиска используются параметры поиска, настроенные в данный момент.
Синтаксис
HRESULT Search(
[in] BSTR criteria,
[out] ISearchResult **retval
);
Параметры
[in] criteria
Строка, указывающая условия поиска.
[out] retval
Интерфейс ISearchResult , содержащий следующее:
- Результат операции
- Коллекция обновлений, соответствующих условиям поиска.
Возвращаемое значение
В случае успешного выполнения возвращает S_OK . В противном случае возвращает код ошибки COM или Windows.
Этот метод также может возвращать следующие коды ошибок.
Код возврата | Описание |
---|---|
|
Невозможно выполнить поиск обновлений, если для свойства ServerSelection интерфейса IUpdateSearcher задано значение ssManagedServer или ssDefault, а управляемым сервером на компьютере является сервер Служб обновления программного обеспечения Майкрософт (SUS) 1.0. |
|
Недопустимое значение параметра или ЗНАЧЕНИЕ NULL. |
|
Существуют недопустимые условия поиска. |
Комментарии
Строка, используемая для параметра условия, должна соответствовать языку пользовательского поиска для метода 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 |