IUpdateSearcher::Metode pencarian (wuapi.h)

Melakukan pencarian sinkron untuk pembaruan. Pencarian menggunakan opsi pencarian yang saat ini dikonfigurasi.

Sintaks

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

Parameter

[in] criteria

String yang menentukan kriteria pencarian.

[out] retval

Antarmuka ISearchResult yang berisi hal berikut:

  • Hasil operasi
  • Kumpulan pembaruan yang cocok dengan kriteria pencarian

Menampilkan nilai

Mengembalikan S_OK jika berhasil. Jika tidak, mengembalikan kode kesalahan COM atau Windows.

Metode ini juga dapat mengembalikan kode kesalahan berikut.

Menampilkan kode Deskripsi
WU_E_LEGACYSERVER
Anda tidak dapat mencari pembaruan jika properti ServerSelection antarmuka IUpdateSearcher diatur ke ssManagedServer atau ssDefault, dan server terkelola di komputer adalah server Microsoft Software Update Services (SUS) 1.0.
E_POINTER
Nilai parameter tidak valid atau NULL.
WU_E_INVALID_CRITERIA
Ada kriteria pencarian yang tidak valid.

Keterangan

String yang digunakan untuk parameter kriteria harus cocok dengan bahasa pencarian kustom untuk metode Pencarian . String terdiri dari kriteria yang dievaluasi untuk menentukan pembaruan yang akan dikembalikan.

Setiap kriteria menentukan nama dan nilai properti pembaruan. Dengan beberapa batasan, beberapa kriteria dapat dihubungkan dengan operator AND dan OR . Operator = (sama) dan != (tidak sama dengan) keduanya didukung. Ketika Anda menggunakan Windows Update Agent (WUA), operator != (tidak sama dengan) hanya dapat digunakan dengan kriteria jenis.

Sintaks kriteria pencarian didasarkan pada klausa WHERE dari ekspresi kueri SQL. Sebagian besar peta kriteria yang didukung langsung untuk memperbarui properti. Properti pembaruan ini menyerupai elemen dalam dokumen XML virtual yang berisi seluruh katalog server. Misalnya, jika Anda menentukan string kriteria pencarian "AutoSelectOnWebSites = 1", pencarian mengembalikan semua pembaruan yang memiliki properti AutoSelectOnWebSites dengan nilai VARIANT_TRUE.

Kriteria tunggal terdiri dari "Nilai Nama = " atau "Nama != Nilai", di mana "Nama" adalah salah satu nama kriteria yang didukung, dan "Nilai" adalah string atau bilangan bulat. Operator AND dan OR dapat digunakan untuk menyambungkan beberapa kriteria. Namun, OR hanya dapat digunakan di tingkat atas kriteria pencarian. Oleh karena itu, "(x=1 dan y=1) atau (z=1)" valid, tetapi "(x=1) dan (y=1 atau z=1)" tidak valid.

Jenis nilai yang didukung adalah bilangan bulat dan string. Bilangan bulat harus ditentukan dalam basis 10, dan angka negatif diawali dengan tanda minus (-). String harus diloloskan dan diapit dalam tanda kutip tunggal ('). Semua perbandingan string tidak peka huruf besar/kecil kecuali ditentukan.

Tabel berikut mengidentifikasi semua kriteria dukungan publik dalam urutan prioritas evaluasi. Kriteria lainnya dapat ditambahkan ke daftar ini di masa mendatang.

Kriteria Jenis Operator yang diizinkan Deskripsi
Jenis string =, != Menemukan pembaruan jenis tertentu, seperti "'Driver'" dan "'Perangkat Lunak'".
DeploymentAction string = Menemukan pembaruan yang disebarkan untuk tindakan tertentu, seperti penginstalan atau penghapusan instalasi yang ditentukan administrator server.

"DeploymentAction='Installation'" menemukan pembaruan yang disebarkan untuk penginstalan di komputer tujuan. "DeploymentAction='Uninstallation'" bergantung pada kriteria kueri lainnya.

"DeploymentAction='Uninstallation'" menemukan pembaruan yang disebarkan untuk penghapusan instalasi pada komputer tujuan. "DeploymentAction='Uninstallation'" bergantung pada kriteria kueri lainnya.

Jika kriteria ini tidak ditentukan secara eksplisit, setiap grup kriteria yang bergabung ke operator AND menyiratkan "DeploymentAction='Installation'".

Ditugaskan int(bool) = Menemukan pembaruan yang ditujukan untuk penyebaran oleh Updates Otomatis.

"IsAssigned=1" menemukan pembaruan yang ditujukan untuk penyebaran oleh Updates Otomatis, yang bergantung pada kriteria kueri lainnya. Paling banyak, satu pembaruan driver berbasis Windows yang ditetapkan dikembalikan untuk setiap perangkat lokal pada komputer tujuan.

"IsAssigned=0" menemukan pembaruan yang tidak dimaksudkan untuk disebarkan oleh Updates Otomatis.

TelusuriSejumlah int(bool) = "BrowseOnly=1" menemukan pembaruan yang dianggap opsional.

"BrowseOnly=0" menemukan pembaruan yang tidak dianggap opsional.

AutoSelectOnWebSites int(bool) = Menemukan pembaruan di mana properti AutoSelectOnWebSites memiliki nilai yang ditentukan.

"AutoSelectOnWebSites=1" menemukan pembaruan yang ditandai untuk dipilih secara otomatis oleh Windows Update.

"AutoSelectOnWebSites=0" menemukan pembaruan yang tidak ditandai untuk Updates Otomatis.

UpdateID string(UUID) =, != Menemukan pembaruan yang nilai properti UpdateIdentity.UpdateID cocok dengan nilai yang ditentukan. Dapat digunakan dengan operator != untuk menemukan semua pembaruan yang tidak memiliki UpdateIdentity.UpdateID dari nilai yang ditentukan.

Misalnya, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" menemukan pembaruan untuk UpdateIdentity.UpdateID yang sama dengan 12345678-9abc-def0-1234-56789abcdef0.

Misalnya, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" menemukan pembaruan untuk UpdateIdentity.UpdateID yang tidak sama dengan 12345678-9abc-def0-1234-56789abcdef0.

Catatan Klausa RevisionNumber dapat dikombinasikan dengan klausul UpdateID yang berisi = operator (sama). Namun, klausa RevisionNumber tidak dapat dikombinasikan dengan klausa UpdateID yang berisi operator != (tidak sama dengan).
 

Misalnya, "UpdateID='12345678-9abc-def0-1234-56789abcdef0' dan RevisionNumber=100" dapat digunakan untuk menemukan pembaruan untuk Pembaruan Identity.UpdateID yang sama dengan 12345678-9abc-def0-1234-56789abcdef0 dan yang UpdateIdentity.RevisionNumber-nya sama dengan 100.

RevisionNumber int = Menemukan pembaruan yang nilai properti UpdateIdentity.RevisionNumber cocok dengan nilai yang ditentukan.

Misalnya, "RevisionNumber=2" menemukan pembaruan di mana UpdateIdentity.RevisionNumber sama dengan 2.

Kriteria ini harus dikombinasikan dengan properti UpdateID.

CategoryIDs string(uuid) contains Menemukan pembaruan yang termasuk dalam kategori tertentu.
Terinstal int(bool) = Menemukan pembaruan yang terinstal pada komputer tujuan.

"IsInstalled=1" menemukan pembaruan yang diinstal pada komputer tujuan.

"IsInstalled=0" menemukan pembaruan yang tidak diinstal pada komputer tujuan.

IsHidden int(bool) = Menemukan pembaruan yang ditandai sebagai tersembunyi pada komputer tujuan.

"IsHidden=1" menemukan pembaruan yang ditandai sebagai tersembunyi di komputer tujuan. Saat Anda menggunakan klausa ini, Anda dapat mengatur properti UpdateSearcher.IncludePotentiallySupersedUpdates ke VARIANT_TRUE sehingga pencarian mengembalikan pembaruan tersembunyi. Pembaruan tersembunyi mungkin digantikan oleh pembaruan lain dalam hasil yang sama.

"IsHidden=0" menemukan pembaruan yang tidak ditandai sebagai tersembunyi. Jika properti UpdateSearcher.IncludePotentiallySupersedUpdates diatur ke VARIANT_FALSE, lebih baik menyertakan klausul tersebut dalam string filter pencarian sehingga pembaruan yang digantikan oleh pembaruan tersembunyi disertakan dalam hasil pencarian. VARIANT_FALSE adalah nilai default.

IsPresent int(bool) = Ketika diatur ke 1, menemukan pembaruan yang ada di komputer.

"IsPresent=1" menemukan pembaruan yang ada di komputer tujuan. Jika pembaruan berlaku untuk satu atau beberapa produk, pembaruan dianggap ada jika diinstal untuk satu atau beberapa produk.

"IsPresent=0" menemukan pembaruan yang tidak diinstal untuk produk apa pun di komputer tujuan.

RebootRequired int(bool) = Menemukan pembaruan yang mengharuskan komputer dimulai ulang untuk menyelesaikan penginstalan atau penghapusan instalasi.

"RebootRequired=1" menemukan pembaruan yang mengharuskan komputer dimulai ulang untuk menyelesaikan penginstalan atau penghapusan instalasi.

"RebootRequired=0" menemukan pembaruan yang tidak mengharuskan komputer dimulai ulang untuk menyelesaikan penginstalan atau penghapusan instalasi.

 

Kriteria pencarian default untuk pencarian adalah sebagai berikut:

( IsInstalled = 0 and IsHidden = 0 )

Untuk menemukan semua pembaruan tersembunyi (dengan menggunakan properti UpdateSearcher.IncludePotentiallySupersededUpdates yang diatur ke VARIANT_TRUE), gunakan kriteria berikut:

 ( IsHidden = 1 )

Persyaratan

   
Klien minimum yang didukung Windows XP, Windows 2000 Professional dengan SP3 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2003, Windows 2000 Server dengan SP3 [hanya aplikasi desktop]
Target Platform Windows
Header wuapi.h
Pustaka Wuguid.lib
DLL Wuapi.dll

Lihat juga

IUpdateSearcher