Condividi tramite


Come eseguire una query Configuration Manager asincrona usando WMI

In Configuration Manager si esegue una query sincrona per Configuration Manager oggetti chiamando il metodo ExecQueryAsync dell'oggetto SWbemServices e implementando un metodo sink per gestire i risultati della query.

Per gestire ogni oggetto restituito, creare una subroutine di evento objWbemSink.OnObjectReady . Per ricevere una notifica al termine della query, creare una subroutine di evento objWbemSink.OnCompleted .

Nota

Le proprietà lazy non vengono restituite nelle query asincrone. Per altre informazioni, vedere How to Read Lazy Properties by Using WMI (Come leggere le proprietà lazy tramite WMI).

Per eseguire una query asincrona

  1. Configurare una connessione al provider SMS. Per altre informazioni, vedere Come connettersi a un provider SMS in Configuration Manager tramite WMI.

  2. Creare una subroutine OnObjectReady per gestire gli oggetti tramite la query.

  3. Creare una subroutine OnCompleted per gestire il completamento della query.

  4. Usando l'oggetto SWbemServices ottenuto dal passaggio 1, usare l'oggetto ExecQueryAsync per eseguire query Configuration Manager oggetti in modo asincrono.

Esempio

L'esempio di codice VBScript seguente esegue query in modo asincrono per tutti gli oggetti SMS_Collection .

Per informazioni sulla chiamata del codice di esempio, vedere Chiamata di frammenti di codice Configuration Manager.

Dim bdone  
Sub QueryCollection(connection)  

    Dim sink  
    bdone = False  

    Set sink = WScript.CreateObject("wbemscripting.swbemsink","sink_")  

    ' Query for all collections.  
    connection.ExecQueryAsync sink, "select * from SMS_Collection"  

    ' Wait until all instances are returned.  
    While Not bdone      
        wscript.sleep 1000  
    Wend  
 End Sub     

' The sink subroutine to handle the OnObjectReady   
' event. This is called as each object returns.  
Sub sink_OnObjectReady(collection, octx)  
    WScript.Echo "CollectionID: " + collection.CollectionID  
    WScript.Echo "Name: " + collection.Name  
    Wscript.Echo  
End Sub  

' The sink subroutine to handle the OnCompleted event.  
' This is called when all the objects are returned.   
' The oErr parameter obtains an SWbemLastError object,  
' if available from the provider.  
Sub sink_OnCompleted(HResult, oErr, oCtx)  
    WScript.Echo "All collections returned"  
    bdone = true  
End Sub  

Questo metodo di esempio include i parametri seguenti:

Parametro Tipo Descrizione
connection SWbemServices Connessione valida al provider SMS.

Vedere anche

Strumentazione gestione Windows
Panoramica degli oggettiCome chiamare un metodo della classe oggetto Configuration Manager tramite WMI
Come connettersi a un provider SMS in Configuration Manager tramite WMI
Come creare un oggetto Configuration Manager tramite WMI
Come eliminare un oggetto Configuration Manager tramite WMI
Come modificare un oggetto Configuration Manager tramite WMI
Come eseguire una query di Configuration Manager sincrona tramite WMI
Come leggere un oggetto Configuration Manager tramite WMI
Come leggere le proprietà lazy usando WMI
Configuration Manager linguaggio di query WMI esteso
set di risultati Configuration Manager
query speciali Configuration Manager
Informazioni sulle query