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


Запрос WMI

Одним из main средств инструментария управления Windows (WMI) является возможность запрашивать в репозитории WMI сведения о классах и экземплярах. Например, можно запросить, чтобы WMI возвращал все объекты, представляющие события завершения работы, из настольной системы. Вы также можете получить данные класса, экземпляра или схемы. В следующей таблице перечислены различные типы запросов, которые можно выполнить.

Раздел Описание
Вызов синхронного запроса Описывает, как поддерживать связь с WMI на протяжении всего процесса запроса. Синхронные запросы хорошо подходит для небольших запросов или запросов к локальной системе.
Вызов асинхронного запроса Описывает, как настроить отдельный процесс для получения запросов. Асинхронные запросы являются более сложными и обеспечивают более низкий уровень безопасности, но обычно повышают производительность системы.

Помимо запросов к репозиторию WMI, вы также можете использовать язык запросов WMI (WQL) для маршрутизации событий уведомлений в приложение. Дополнительные сведения см. в разделе Получение события WMI.

Примечание

Чтобы правильно запрашивать WMI, необходимо иметь хорошее представление о WQL. Неправильный, слишком сложный или неуместный запрос может привести к тому, что обработчик запросов возвращает ошибку или непредвиденные результаты. Полное руководство по WQL см. в разделе Запросы с помощью WQL.

Существуют ограничения на количество ключевых слов AND и OR , которые можно использовать в WQL-запросах. Большое количество ключевых слов WQL, используемых в сложном запросе, может привести к возврату WMI кода ошибки WBEM_E_QUOTA_VIOLATION в качестве значения HRESULT . Ограничение ключевых слов WQL зависит от сложности запроса.

При запросе значений свойств с типом данных uint64 или sint64 на языке сценариев, например VBScript, WMI возвращает строковые значения. При сравнении этих значений могут возникнуть непредвиденные результаты, так как сравнение строк возвращает результаты, отличные от сравнения чисел. Например, "10000000000" меньше "9" при сравнении строк, а 9 меньше 10000000000 при сравнении чисел. Чтобы избежать путаницы, следует использовать метод CDbl в VBScript, когда свойства типа uint64 или sint64 извлекаются из WMI.

Примечание

Дополнительные сведения см. в разделе Управление сведениями о классах и экземплярах.