Condividi tramite


Come eseguire una query Configuration Manager asincrona tramite 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

Panoramica degli oggettistrumentazione gestione WindowsCome chiamare un metodo della classe oggetto Configuration Manager tramite WMICome connettersi a un provider SMS in Configuration Manager usando WMICome creare un oggetto Configuration Manager usandola procedura WMI Eliminare un oggetto Configuration Manager usando WMICome modificare un oggetto Configuration Manager usando WMICome eseguire una query di Configuration Manager sincrona usandowmi Come leggere un Configuration Manager Oggetto tramite WMICome leggere le proprietà differite tramite WMIConfiguration Manager linguaggio di query WMI estesoConfiguration Manager set di risultatiConfiguration Manager query specialisulle query