Поделиться через


Выполнение асинхронного запроса Configuration Manager с помощью WMI

В Configuration Manager выполняется синхронный запрос для объектов Configuration Manager путем вызова метода ExecQueryAsync объекта SWbemServices и реализации метода приемника для обработки результатов запроса.

Чтобы обработать каждый возвращаемый объект, создайте подпрограмму события objWbemSink.OnObjectReady . Чтобы получать уведомления о завершении запроса, создайте подпрограмму события objWbemSink.OnCompleted .

Примечание.

Отложенные свойства не возвращаются в асинхронных запросах. Дополнительные сведения см. в статье Чтение отложенных свойств с помощью WMI.

Выполнение асинхронного запроса

  1. Настройте подключение к поставщику SMS. Дополнительные сведения см. в статье Подключение к поставщику SMS в Configuration Manager с помощью WMI.

  2. Создайте подпрограмму OnObjectReady для обработки объектов с помощью запроса.

  3. Создайте подпрограмму OnCompleted для обработки завершения запроса.

  4. Используя объект SWbemServices, полученный на первом шаге, используйте объект ExecQueryAsync для асинхронного запроса объектов Configuration Manager.

Пример

Следующий пример кода VBScript асинхронно запрашивает все SMS_Collection объекты.

Сведения о вызове примера кода см. в разделе Вызов фрагментов кода 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

Этот пример метода имеет следующие параметры:

Параметр Тип Описание
connection SWbemServices Допустимое подключение к поставщику SMS.

См. также

Общие сведения об объектахинструментирования управления Windows. Вызов метода класса объектов Configuration Manager с помощью WMI. Как подключиться к поставщику SMS в Configuration Manager с помощью WMI. Создание объекта Configuration Manager с помощью WMIПрактическое руководство Удаление объекта Configuration Manager с помощью WMI. Изменение объекта Configuration Manager с помощью WMI. Как выполнить синхронный запрос Configuration Manager с помощью WMIКак считывать Configuration Manager Object by Using WMIHow to Read Lazy Properties by Using WMIConfiguration Manager Extended WMI Query LanguageConfiguration Manager Result SetsConfiguration Manager Special QuerysAbout querys