WQL. WMI Query Language. Язык запросов WMI

Для обращения к WMI объектам используют встроенным в WMI язык запросов - WQL (WMI Query Language, редко, но можно встретить и другое название - SQL for WMI).

Этот язык позиционируется как ANSI SQL-совместимый. При этом он очень сильно урезан. Соответственно назначению. Из всех операторов допустимо использовать только SELECT. Хотя сложно представить, что бы оператором UPDATE кто-то захотел изменить, например, тип процессора компьютера. (Хотя даже в классах WMI для работы с оборудованием есть классы, позволяющие вносить изменения. Так, класс Win32_Fan позволяет изменять скорость вращения вентилятора, там где это поддерживается, класс Win32_LogicalDisk позволяет изменить имя тома, класс Win32_NetworkAdapterConfiguration поддерживает достаточно большое количество методов, позволяющих менять сетевые настройки адаптера.)

В общем случае синтаксис запроса >WQL выглядит достаточно привычно:

SELECT свойства FROM имя_класса WHERE свойство оператор значение


И в простейшем случае выглядит, например, так:

SELECT * FROM Win32_PhysicalMemory


Но во многих примерах вы увидите именно такие запросы.

Как и в обычном SQL можно выбрать только требуемые столбцы - свойства. В результате возвращаются только перечисленные свойства и свойство, которое определено как ключевое.

Выражение FROM в WQL-запросе - это имя класса, коллекцию экземпляров которого мы хотим получить.

Фильтр WHERE допускает использование стандартных операций логического сравнения: =, <, >, <>, <=, >=. Для объединения логических выражений используются ключевые слова AND и OR.

Select * from Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE




Или несколько более сложное условие:

SELECT * FROM Win32_LogicalDisk WHERE (Name = "C:" OR Name = "D:") AND FreeSpace > 1000000 AND FileSystem = "NTFS"


IS и IS NOT - могут использоваться только для сравнения значения с NULL - таковы ограничения WQL.

Select * from Win32_NetworkAdapterConfiguration WHERE MACAddress IS NOT NULL


В некоторых источниках вы встретите утверждение, что в WQL нельзя использовать конструкцию LIKE.
И даже сожаления по этому поводу. Возможно, в первых версиях WQL так оно и было. Самая "пожилая" операционная система, на которой я это проверял - Windows XP - поддерживает этот оператор, а с предыдущими вы едва ли уже столкнетесь).

SELECT * FROM Win32_StartupCommand WHERE Command LIKE '%exe%'


Ниже определены основные ключевые слова WQL.


WQL ключевые слова
 

Описание
 
AND Объединяет два логических выражений и возвращает TRUE, если оба выражения имеют значение TRUE.
ASSOCIATORS OF Получает все экземпляры, которые связаны с экземпляром источника.
__CLASS Ссылки класс объекта в запросе.
FROM Определяет класс, который содержит свойства, перечисленные в SELECT конструкции.
GROUP Clause Определяет класс, который содержит свойства, перечисленные в SELECT конструкции.
HAVING Фильтры событий, которые были получены в течение интервала группировки, указанного в WITHIN.
IS Оператор сравнения c NULL. Синтаксис этого оператора следующий:
IS [NOT] NULL (Где NOT не является обязательным)
LIKE Оператор, который определяет, соответствует ли строка заданному шаблону.
NOTЛогический оператор отрицания.
NULL Указывает объект, который не имеет явно заданной величины
NULL не эквивалентен нулю (0) или пустому значению.
OR Логическое ИЛИ
SELECT Указывает свойства, которые используются в запросе.
TRUE Логическое значение Истина.
WHERE Определяет условия выбора
WITHIN При запросе событий определяет интервал.
FALSE Логическое значение Ложь.


Здесь я попытался дать самое общее, поверхностное описание WQL для едва ли не самых простых случаев (хотя, на мой взгляд, это перекрывает как минимум процентов 80 потребностей). Для более детального изучения WQL я рекомендую обратиться к MSDN.





Для вопросов, обсуждений, замечаний, предложений и т. п. можете использовать раздел форума этого сайта (требуется регистрация).






  TopList Rambler Top100 own counter Valid XHTML 1.0 Strict Valid CSS Rambler Top100

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка link О авторе

Фитотерапия Молитвы Водолечение Юмор Форум Кладовка Ссылки О авторе Отправить сообщение Карта сайта Поиск по сайту Главная страница

Copyright © 1999 - 2017  Бронислав Краснер