Partage via


Comment effectuer une requête Configuration Manager asynchrone à l’aide de WMI

Dans Configuration Manager, vous effectuez une requête synchrone pour les objets Configuration Manager en appelant la méthode ExecQueryAsync de l’objet SWbemServices et en implémentant une méthode sink pour gérer les résultats de la requête.

Pour gérer chaque objet retourné, créez une sous-routine d’événement objWbemSink.OnObjectReady . Pour être averti lorsque la requête est terminée, créez une sous-routine d’événement objWbemSink.OnCompleted .

Remarque

Les propriétés différées ne sont pas retournées dans les requêtes asynchrones. Pour plus d’informations, consultez Guide pratique pour lire des propriétés différées à l’aide de WMI.

Pour effectuer une requête asynchrone

  1. Configurez une connexion au fournisseur SMS. Pour plus d’informations, consultez Connexion à un fournisseur SMS dans Configuration Manager à l’aide de WMI.

  2. Créez une sous-routine OnObjectReady pour gérer les objets par la requête.

  3. Créez une sous-routine OnCompleted pour gérer l’achèvement des requêtes.

  4. À l’aide de l’objet SWbemServices que vous obtenez à l’étape 1, utilisez l’objet ExecQueryAsync pour interroger Configuration Manager objets de manière asynchrone.

Exemple

L’exemple de code VBScript suivant interroge de façon asynchrone tous les objets SMS_Collection .

Pour plus d’informations sur l’appel de l’exemple de code, consultez Appel d’extraits de code 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  

Cet exemple de méthode a les paramètres suivants :

Paramètre Type Description
connection SWbemServices Connexion valide au fournisseur SMS.

Voir aussi

Windows Infrastructure de gestion
Vue d’ensemble des objetsComment appeler une méthode de classe d’objet Configuration Manager à l’aide de WMI
Comment se connecter à un fournisseur SMS dans Configuration Manager à l’aide de WMI
Comment créer un objet Configuration Manager à l’aide de WMI
Comment supprimer un objet Configuration Manager à l’aide de WMI
Comment modifier un objet Configuration Manager à l’aide de WMI
Comment effectuer une requête de Configuration Manager synchrone à l’aide de WMI
Guide pratique pour lire un objet Configuration Manager à l’aide de WMI
Guide pratique pour lire des propriétés différées à l’aide de WMI
langage de requête WMI étendu Configuration Manager
Configuration Manager jeux de résultats
Configuration Manager requêtes spéciales
À propos des requêtes