Запросы к 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 возвращает строковые значения. Непредвиденные результаты могут возникать при сравнении этих значений, так как сравнение строк возвращает разные результаты, отличные от сравнения чисел. Например, "100000000000" меньше "9" при сравнении строк, и 9 меньше 100000000000 при сравнении чисел. Чтобы избежать путаницы, следует использовать метод CDbl в VBScript, если свойства типа uint64 или sint64 извлекаются из WMI.
Заметка
Дополнительные сведения см. в Манипулирование сведениями о классе и экземпляре.