Dela via


Så här utför du en asynkron Configuration Manager fråga med hjälp av WMI

I Configuration Manager utför du en synkron fråga för Configuration Manager objekt genom att anropa metoden SWbemServices-objektetExecQueryAsync och genom att implementera en mottagarmetod för att hantera frågeresultat.

Om du vill hantera varje returnerat objekt skapar du en objWbemSink.OnObjectReady-händelseunderrutin . Om du vill meddelas när frågan är klar skapar du en objWbemSink.OnCompleted-händelseunderrutin .

Obs!

Lazy-egenskaper returneras inte i asynkrona frågor. Mer information finns i Läsa Lazy-egenskaper med hjälp av WMI.

Så här utför du en asynkron fråga

  1. Konfigurera en anslutning till SMS-providern. Mer information finns i Så här ansluter du till en SMS-provider i Configuration Manager med hjälp av WMI.

  2. Skapa en OnObjectReady-underrutin för att hantera objekt av frågan.

  3. Skapa en OnCompleted-underrutin för att hantera frågekomplettering.

  4. Använd SWbemServices-objektet som du hämtar från steg ett och använd ExecQueryAsync-objektet för att fråga Configuration Manager objekt asynkront.

Exempel

Följande VBScript-kodexempel frågar asynkront för alla SMS_Collection objekt.

Information om hur du anropar exempelkoden finns i Anropa Configuration Manager kodfragment.

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  

Den här exempelmetoden har följande parametrar:

Parameter Typ Beskrivning
connection SWbemServices En giltig anslutning till SMS-providern.

Se även

Windows Management Instrumentation
ObjektöversiktSå här anropar du en Configuration Manager objektklassmetod med hjälp av WMI
Ansluta till en SMS-provider i Configuration Manager med hjälp av WMI
Så här skapar du ett Configuration Manager objekt med hjälp av WMI
Ta bort ett Configuration Manager objekt med hjälp av WMI
Ändra ett Configuration Manager objekt med hjälp av WMI
Så här utför du en synkron Configuration Manager fråga med hjälp av WMI
Läsa ett Configuration Manager objekt med hjälp av WMI
Läsa lazy-egenskaper med hjälp av WMI
Configuration Manager utökat WMI-frågespråk
Configuration Manager resultatuppsättningar
Configuration Manager särskilda frågor
Om frågor