Share via


Como executar uma consulta de Configuration Manager assíncrona usando o WMI

Em Configuration Manager, você executa uma consulta síncrona para objetos Configuration Manager chamando o objeto SWbemServicesexecQueryAsync e implementando um método de coletor para lidar com os resultados da consulta.

Para manipular cada objeto retornado, crie uma sub-rotina de evento objWbemSink.OnObjectReady . Para ser notificado quando a consulta for concluída, crie uma sub-rotina de evento objWbemSink.OnCompleted .

Observação

Propriedades preguiçosas não são retornadas em consultas assíncronas. Para obter mais informações, consulte Como ler propriedades preguiçosas usando o WMI.

Para executar uma consulta assíncrona

  1. Configure uma conexão com o Provedor de SMS. Para obter mais informações, consulte Como conectar-se a um provedor de SMS no Configuration Manager usando o WMI.

  2. Crie uma sub-rotina OnObjectReady para manipular objetos pela consulta.

  3. Crie uma sub-rotina OnCompleted para lidar com a conclusão da consulta.

  4. Usando o objeto SWbemServices obtido na primeira etapa, use o objeto ExecQueryAsync para consultar Configuration Manager objetos de forma assíncrona.

Exemplo

O exemplo de código VBScript a seguir consulta assíncronamente para todos os objetos SMS_Collection .

Para obter informações sobre como chamar o código de exemplo, consulte Chamando Configuration Manager Snippets 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 conexão válida com o provedor de SMS.

Confira também

Instrumentação de gerenciamento do Windows
Visão geral de objetosComo chamar um método de classe de objeto Configuration Manager usando o WMI
Como se conectar a um provedor de SMS no Configuration Manager usando o WMI
Como criar um objeto Configuration Manager usando o WMI
Como excluir um objeto Configuration Manager usando o WMI
Como modificar um objeto Configuration Manager usando o WMI
Como executar uma consulta de Configuration Manager síncrona usando o WMI
Como ler um objeto Configuration Manager usando o WMI
Como ler propriedades preguiçosas usando o WMI
Configuration Manager Linguagem de Consulta WMI Estendida
conjuntos de resultados Configuration Manager
Configuration Manager consultas especiais
Sobre consultas