Compartilhar via


How to Perform an Asynchronous Configuration Manager Query by Using WMI (Como Executar uma Consulta de Configuration Manager Assíncrona com a WMI)

No Configuration Manager, executa uma consulta síncrona para Configuration Manager objetos ao chamar o método ExecQueryAsync do objeto SWbemServices e ao implementar um método sink para processar os resultados da consulta.

Para processar cada objeto devolvido, crie uma subrreplicação de evento objWbemSink.OnObjectReady . Para ser notificado quando a consulta estiver concluída, crie um subroutine de evento objWbemSink.OnCompleted .

Observação

As propriedades lentas não são devolvidas em consultas assíncronas. Para obter mais informações, veja How to Read Lazy Properties by Using WMI (Como Ler Propriedades Lentas com a WMI).

Para executar uma consulta assíncrona

  1. Configure uma ligação ao Fornecedor de SMS. Para obter mais informações, veja How to Connect to an SMS Provider in Configuration Manager by Using WMI (Como Ligar a um Fornecedor de SMS no Configuration Manager através da WMI).

  2. Crie um subroutine OnObjectReady para processar objetos através da consulta.

  3. Crie um subroutine OnCompleted para processar a conclusão da consulta.

  4. Com o objeto SWbemServices que obtém no primeiro passo, utilize o objeto ExecQueryAsync para consultar Configuration Manager objetos de forma assíncrona.

Exemplo

O seguinte exemplo de código VBScript consulta de forma assíncrona para todos os objetos SMS_Collection .

Para obter informações sobre como chamar o código de exemplo, veja Chamar Configuration Manager Fragmentos de Código.

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

Este método de exemplo tem os seguintes parâmetros:

Parâmetro Tipo Descrição
connection SWbemServices Uma ligação válida ao Fornecedor de SMS.

Confira também

Descrição geral dos Objetos de Instrumentação de Gestão do WindowsHow to Call a Configuration Manager Object Class Method by Using WMIHow to Connect to an SMS Provider in Configuration Manager by Using WMIHow to Create a Configuration Manager Object by Using WMIHow to Eliminar um objeto de Configuration Manager com a WMIComo Modificar um Objeto de Configuration Manager ao Utilizar a WMIComo Executar uma Consulta de Configuration Manager Síncrona com a WMIComo Ler uma Configuration Manager Object by Using WMIHow to Read Lazy Properties by Using WMIConfiguration Manager Extended WMI Query LanguageConfiguration Manager Result SetsConfiguration Manager Special QueriesAbout queries About queries