IUpdateSearcher::Search メソッド (wuapi.h)

更新プログラムの同期検索を実行します。 この検索では、現在構成されている検索オプションが使用されます。

構文

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

パラメーター

[in] criteria

検索条件を指定する文字列。

[out] retval

次を含む ISearchResult インターフェイス。

  • 操作の結果
  • 検索条件に一致する更新プログラムのコレクション

戻り値

成功した場合 はS_OK を返します。 それ以外の場合は、COM または Windows のエラー コードを返します。

このメソッドは、次のエラー コードを返すこともできます。

リターン コード 説明
WU_E_LEGACYSERVER
IUpdateSearcher インターフェイスの ServerSelection プロパティが ssManagedServer または ssDefault に設定されていて、コンピューター上のマネージド サーバーが Microsoft Software Update Services (SUS) 1.0 サーバーである場合、更新プログラムを検索できません。
E_POINTER
パラメーター値が無効または NULL です
WU_E_INVALID_CRITERIA
無効な検索条件があります。

解説

criteria パラメーターに使用される文字列は、Search メソッドのカスタム検索言語と一致する必要があります。 文字列は、返す更新プログラムを決定するために評価される条件で構成されます。

各条件は、更新プロパティの名前と値を指定します。 一部の制限により、複数の条件を AND 演算子と OR 演算子に接続できます。 = (等しい) 演算子と != 演算子 (等しくない) の両方がサポートされています。 Windows Update Agent (WUA) を使用する場合、!= (等しくない) 演算子は型条件でのみ使用できます。

検索条件の構文は、SQL クエリ式の WHERE 句に基づいています。 サポートされている条件のほとんどは、プロパティを更新するために直接マップされます。 これらの更新プロパティは、サーバー カタログ全体を含む仮想 XML ドキュメント内の要素に似ています。 たとえば、"AutoSelectOnWebSites = 1" という検索条件文字列を指定した場合、この検索では、値 が VARIANT_TRUE の AutoSelectOnWebSites プロパティを持つすべての更新プログラムが返されます。

1 つの条件は、"Name = Value" または "Name != Value" で構成されます。ここで、"Name" はサポートされている条件名の 1 つで、"Value" は文字列または整数です。 AND 演算子と OR 演算子を使用して、複数の条件を接続できます。 ただし、 OR は検索条件の最上位レベルでのみ使用できます。 したがって、"(x=1 and y=1) または (z=1)" は有効ですが、"(x=1) と (y=1 または z=1)" は無効です。

サポートされている値型は整数と文字列です。 整数は底 10 で指定する必要があり、負の数値にはマイナス記号 (-) が付きます。 文字列はエスケープし、単一引用符 (') で囲む必要があります。 指定しない限り、すべての文字列比較では大文字と小文字が区別されません。

次の表は、すべてのパブリック サポート条件を評価の優先順位で示しています。 今後、この一覧にさらに条件が追加される可能性があります。

条件 種類 使用可能な演算子 説明
種類 string =, != "'Driver'" や "'Software' など、特定の種類の更新プログラムを検索します。
DeploymentAction string = サーバーの管理者が指定するインストールやアンインストールなど、特定のアクションに対して展開された更新プログラムを検索します。

"DeploymentAction='Installation'" は、展開先コンピューターにインストールするために展開された更新プログラムを検索します。 "DeploymentAction='Msdn'" は、他のクエリ条件に依存します。

"DeploymentAction='Msdn'" は、展開先コンピューターのアンインストール用に展開された更新プログラムを検索します。 "DeploymentAction='Msdn'" は、他のクエリ条件に依存します。

この条件が明示的に指定されていない場合、 AND 演算子に結合される条件の各グループは、"DeploymentAction='Installation' を意味します。

IsAssigned int(bool) = 自動更新による展開を目的とした更新プログラムを検索します。

"IsAssigned=1" は、自動更新による展開を目的とした更新プログラムを検索します。これは、他のクエリ条件に依存します。 最大で、移行先コンピューター上のローカル デバイスごとに、割り当てられた 1 つの Windows ベースのドライバー更新プログラムが返されます。

"IsAssigned=0" は、自動更新によって展開されることを意図していない更新プログラムを検索します。

BrowseOnly int(bool) = "BrowseOnly=1" は、オプションと見なされる更新プログラムを検索します。

"BrowseOnly=0" は、省略可能と見なされない更新プログラムを検索します。

AutoSelectOnWebSites int(bool) = AutoSelectOnWebSites プロパティの値が指定されている更新プログラムを検索します。

"AutoSelectOnWebSites=1" は、Windows Updateによって自動的に選択されるようにフラグが設定された更新プログラムを検索します。

"AutoSelectOnWebSites=0" は、自動更新のフラグが設定されていない更新プログラムを検索します。

UpdateID string(UUID) =, != UpdateIdentity.UpdateID プロパティの値が指定した値と一致する更新プログラムを検索します。 != 演算子と共に使用すると、指定した値の UpdateIdentity.UpdateID を持たないすべての更新プログラムを検索できます。

たとえば、"UpdateID='12345678-9abc-def0-1234-56789abcdef0'" は、12345678-9abc-def0-1234-56789abcdef0 と等しい UpdateIdentity.UpdateID の更新プログラムを検索します。

たとえば、"UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" は、12345678-9abc-def0-1234-56789abcdef0 と等しくない UpdateIdentity.UpdateID の更新プログラムを検索します。

メモ RevisionNumber 句は、(等しい) 演算子を含む = UpdateID 句と組み合わせることができます。 ただし、RevisionNumber 句は、 != (等しくない) 演算子を含む UpdateID 句と組み合わせることはできません。
 

たとえば、"UpdateID='12345678-9abc-def0-1234-56789abcdef0' と RevisionNumber=100" を使用して、 の更新プログラムを検索できます 12345678-9abc-def0-1234-56789abcdef0 と等しく、UpdateIdentity.RevisionNumber が 100 である UpdateIdentity.UpdateID

RevisionNumber int = UpdateIdentity.RevisionNumber プロパティの値が指定した値と一致する更新プログラムを検索します。

たとえば、"RevisionNumber=2" は UpdateIdentity.RevisionNumber が 2 である更新プログラムを検索します。

この条件は、UpdateID プロパティと組み合わせる必要があります。

CategoryIDs 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" は、対象のコンピューターに存在する更新プログラムを検索します。 更新プログラムが 1 つ以上の製品に対して有効な場合、更新プログラムは 1 つ以上の製品に対してインストールされている場合に存在すると見なされます。

"IsPresent=0" は、対象のコンピューター上の製品にインストールされていない更新プログラムを検索します。

RebootRequired int(bool) = インストールまたはアンインストールを完了するためにコンピューターを再起動する必要がある更新プログラムを検索します。

"RebootRequired=1" は、インストールまたはアンインストールを完了するためにコンピューターを再起動する必要がある更新プログラムを検索します。

"RebootRequired=0" は、インストールまたはアンインストールを完了するためにコンピューターの再起動を必要としない更新プログラムを検索します。

 

検索の既定の検索条件は次のとおりです。

( IsInstalled = 0 and IsHidden = 0 )

( UpdateSearcher.IncludePotentiallySupersededUpdates プロパティを VARIANT_TRUEに設定して) すべての非表示の更新プログラムを検索するには、次の条件を使用します。

 ( IsHidden = 1 )

要件

   
サポートされている最小のクライアント Windows XP、Windows 2000 Professional sp3 [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003、Windows 2000 Server SP3 [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー wuapi.h
Library Wuguid.lib
[DLL] Wuapi.dll

関連項目

IUpdateSearcher