Metodo IUpdateSearcher::Search (wuapi.h)

Esegue una ricerca sincrona per gli aggiornamenti. La ricerca usa le opzioni di ricerca attualmente configurate.

Sintassi

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

Parametri

[in] criteria

Stringa che specifica i criteri di ricerca.

[out] retval

Interfaccia ISearchResult che contiene quanto segue:

  • Risultato di un'operazione
  • Raccolta di aggiornamenti che corrispondono ai criteri di ricerca

Valore restituito

Restituisce S_OK se riuscito. In caso contrario, restituisce un codice di errore COM o Windows.

Questo metodo può anche restituire i codici di errore seguenti.

Codice restituito Descrizione
WU_E_LEGACYSERVER
Non è possibile cercare aggiornamenti se la proprietà ServerSelection dell'interfaccia IUpdateSearcher è impostata su ssManagedServer o ssDefault e il server gestito in un computer è un server Microsoft Software Update Services (SUS) 1.0.
E_POINTER
Un valore di parametro non è valido o NULL.
WU_E_INVALID_CRITERIA
Esiste un criterio di ricerca non valido.

Commenti

La stringa usata per il parametro criteri deve corrispondere alla lingua di ricerca personalizzata per il metodo Search . La stringa è costituita da criteri valutati per determinare gli aggiornamenti da restituire.

Ogni criterio specifica un nome e un valore della proprietà di aggiornamento. Con alcune restrizioni, è possibile connettere più criteri agli operatori AND e OR . Gli = operatori (uguale) e != (non uguali) sono entrambi supportati. Quando si usa Windows Update Agent (WUA), l'operatore != (non uguale) può essere usato solo con il criterio di tipo.

La sintassi dei criteri di ricerca si basa sulla clausola WHERE di un'espressione di query SQL. La maggior parte dei criteri supportati viene mappata direttamente alle proprietà di aggiornamento. Queste proprietà di aggiornamento sono simili agli elementi di un documento XML virtuale contenente l'intero catalogo server. Ad esempio, se si specifica una stringa di criteri di ricerca "AutoSelectOnWebSites = 1", la ricerca restituisce tutti gli aggiornamenti con una proprietà AutoSelectOnWebSites con un valore di VARIANT_TRUE.

Un singolo criterio è costituito da "NameValue" o " = Name != Value", dove "Name" è uno dei nomi dei criteri supportati e "Value" è una stringa o un intero. Gli operatori AND e OR possono essere usati per connettere più criteri. Tuttavia, è possibile usare OR solo a livello superiore dei criteri di ricerca. Pertanto, "(x=1 e y=1) o (z=1)" è valido, ma "(x=1) e (y=1 o z=1)" non è valido.

I tipi di valore supportati sono interi e stringhe. Un intero deve essere specificato in base 10 e i numeri negativi sono preceduti da un segno meno (-). Una stringa deve essere escape e racchiusa tra virgolette singole ('). Tutti i confronti tra stringhe sono senza distinzione tra maiuscole e minuscole a meno che non sia specificato.

La tabella seguente identifica tutti i criteri di supporto pubblici nell'ordine della precedenza di valutazione. Altri criteri possono essere aggiunti a questo elenco in futuro.

Criterio Tipo Operatori consentiti Descrizione
Tipo string =, != Trova gli aggiornamenti di un tipo specifico, ad esempio "'Driver'" e "'Software'".
DeploymentAction string = Trova gli aggiornamenti distribuiti per un'azione specifica, ad esempio un'installazione o una disinstallazione che specifica l'amministratore di un server.

"DeploymentAction='Installation'" trova gli aggiornamenti distribuiti per l'installazione in un computer di destinazione. "DeploymentAction='Uninstallation'" dipende dagli altri criteri di query.

"DeploymentAction='Uninstallation'" trova gli aggiornamenti distribuiti per la disinstallazione in un computer di destinazione. "DeploymentAction='Uninstallation'" dipende dagli altri criteri di query.

Se questo criterio non è specificato in modo esplicito, ogni gruppo di criteri aggiunto a un operatore AND implica "DeploymentAction='Installation'".

IsAssigned int(bool) = Trova gli aggiornamenti destinati alla distribuzione tramite Aggiornamenti automatico.

"IsAssigned=1" trova gli aggiornamenti destinati alla distribuzione tramite Aggiornamenti automatico, che dipende dagli altri criteri di query. Al massimo, viene restituito un aggiornamento del driver basato su Windows assegnato per ogni dispositivo locale in un computer di destinazione.

"IsAssigned=0" rileva gli aggiornamenti che non devono essere distribuiti dall'Aggiornamenti automatico.

BrowseOnly int(bool) = "BrowseOnly=1" trova gli aggiornamenti considerati facoltativi.

"BrowseOnly=0" trova gli aggiornamenti che non sono considerati facoltativi.

AutoSelectOnWebSites int(bool) = Trova gli aggiornamenti in cui la proprietà AutoSelectOnWebSites ha il valore specificato.

"AutoSelectOnWebSites=1" rileva gli aggiornamenti contrassegnati per essere selezionati automaticamente da Windows Update.

"AutoSelectOnWebSites=0" trova gli aggiornamenti che non vengono contrassegnati per l'Aggiornamenti automatica.

UpdateID string(UUID) =, != Trova gli aggiornamenti per i quali il valore della proprietà UpdateIdentity.UpdateID corrisponde al valore specificato. Può essere usato con l'operatore != per trovare tutti gli aggiornamenti che non hanno un UpdateIdentity.UpdateID del valore specificato.

Ad esempio, "UpdateID='12345678-9abc-def0-1234-56789abcdef0'" trova aggiornamenti per UpdateIdentity.UpdateID uguale a 12345678-9abc-def0-1234-56789abcdef0.

Ad esempio, "UpdateID!='12345678-9abc-def0-1234-56789abcdef0'" trova gli aggiornamenti per UpdateIdentity.UpdateID che non sono uguali a 12345678-9abc-def0-1234-56789abcdef0.

Nota Una clausola RevisionNumber può essere combinata con una clausola UpdateID contenente un = operatore (uguale). Tuttavia, la clausola RevisionNumber non può essere combinata con una clausola UpdateID contenente l'operatore != (non uguale).
 

Ad esempio, "UpdateID='12345678-9abc-def0-1234-56789abcdef0' e RevisionNumber=100" può essere usato per trovare l'aggiornamento per l'aggiornamentoIdentity.UpdateID uguale a 12345678-9abc-def0-1234-56789abcdef0 e il cui updateIdentity.RevisionNumber è uguale a 100.

RevisionNumber int = Trova gli aggiornamenti per i quali il valore della proprietà UpdateIdentity.RevisionNumber corrisponde al valore specificato.

Ad esempio, "RevisionNumber=2" trova gli aggiornamenti in cui UpdateIdentity.RevisionNumber è uguale a 2.

Questo criterio deve essere combinato con la proprietà UpdateID.

CategoryIDs string(uuid) contains Trova gli aggiornamenti che appartengono a una categoria specificata.
IsInstalled int(bool) = Trova gli aggiornamenti installati nel computer di destinazione.

"IsInstalled=1" trova gli aggiornamenti installati nel computer di destinazione.

"IsInstalled=0" trova gli aggiornamenti non installati nel computer di destinazione.

IsHidden int(bool) = Trova gli aggiornamenti contrassegnati come nascosti nel computer di destinazione.

"IsHidden=1" trova gli aggiornamenti contrassegnati come nascosti in un computer di destinazione. Quando si usa questa clausola, è possibile impostare la proprietà UpdateSearcher.IncludePotentiallySupersedUpdates su VARIANT_TRUE in modo che una ricerca restituisca gli aggiornamenti nascosti. Gli aggiornamenti nascosti potrebbero essere sostituiti da altri aggiornamenti negli stessi risultati.

"IsHidden=0" trova gli aggiornamenti che non sono contrassegnati come nascosti. Se la proprietà UpdateSearcher.IncludePotentiallySupersedUpdates è impostata su VARIANT_FALSE, è preferibile includere tale clausola nella stringa di filtro di ricerca in modo che gli aggiornamenti sostituiti dagli aggiornamenti nascosti siano inclusi nei risultati della ricerca. VARIANT_FALSE è il valore predefinito.

IsPresent int(bool) = Se impostato su 1, trova gli aggiornamenti presenti in un computer.

"IsPresent=1" trova gli aggiornamenti presenti in un computer di destinazione. Se l'aggiornamento è valido per uno o più prodotti, l'aggiornamento viene considerato presente se è installato per uno o più prodotti.

"IsPresent=0" trova gli aggiornamenti che non sono installati per alcun prodotto in un computer di destinazione.

RebootRequired int(bool) = Trova gli aggiornamenti che richiedono il riavvio di un computer per completare un'installazione o una disinstallazione.

"RebootRequired=1" trova gli aggiornamenti che richiedono il riavvio di un computer per completare un'installazione o una disinstallazione.

"RebootRequired=0" trova gli aggiornamenti che non richiedono il riavvio di un computer per completare un'installazione o una disinstallazione.

 

I criteri di ricerca predefiniti per una ricerca sono i seguenti:

( IsInstalled = 0 and IsHidden = 0 )

Per trovare tutti gli aggiornamenti nascosti (usando la proprietà UpdateSearcher.IncludePotentiallySupersedUpdates impostata su VARIANT_TRUE), usare il criterio seguente:

 ( IsHidden = 1 )

Requisiti

   
Client minimo supportato Windows XP, Windows 2000 Professional con SP3 [solo app desktop]
Server minimo supportato Windows Server 2003, Windows 2000 Server con SP3 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione wuapi.h
Libreria Wuguid.lib
DLL Wuapi.dll

Vedi anche

IUpdateSearcher