Очень часто для написания скриптов или фильтров требуется использовать WMI запросы. Я приведу те, которые встречаются чаще всего. В Windows есть встроенная утилита WMIC, которой можно выполнять запросы. Существует также язык WQL Query, который позволяет делать аналогичные запросы в различных системах, таких как SCCM.

Немного теории. Для выполнения запросов, необходимо знать, в каком адресом пространстве (namespace) лежит необходимый вам класс. Если вы не указываете namespace, то по умолчанию используется ROOT\cli и ROOT\cimv2. Например, у меня на компьютере cimv2 в себя включает 504 класса, каждый из которых имеет набор свойств (Properties) и методов (Methods). Например, системный класс Win32_ComputerSystem имеет 64 свойства и 4 метода.

Общий систаксис команды таков: wmic /namespace:\\root\<namespace> path <class name>  get <attributes>

В комманде вы указываете или путь к зарегистрированному классу, или его алиас. Аласы есть не для всех классов. Список достпных алиасов можно получить по команде: wmic /?. Остальные пути (path) можно узнать, скачав и запустив утилиту WMI Explorer:

Как присвоить имя компьютеру windows 10
Класс Win32_ComputerSystem

Вы можете написать как полный путь wmic path Win32_computersystem get model, так и используя alias wmic computersystem get model, эти записи равноценны.

На языке WQL запрос будет выглядеть так:

 Win32_ComputerSystem Name

При написании скриптов на Powershell следует использовать команделт Get-WmiObject:

Вы можете писать и более сложные запросы, используя условие Where:

WMIC Path Win32_NetworkAdapter Where Manufacturer = And PhysicalAdapter = TRUE Get ...

Вы можете вывести не одно, а несколько значений свойств сразу. Тогда они будут выводиться в виде таблицы со столбцами:

wmic environment get name variablevalue

или все свойства, исользуя маску *:

wmic path win32_bios get 

Наиболее полезные WMI запросы

Таблица алиасов для основных классов и свойства ими возвращаемые