Запрос WMI

Одним из основных средств 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.

Примечание

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