WMI (Windows Management Instrumentation) фильтры позволяют указывать критерии выборки компьютеров, на которые будет действовать групповая политика.
При обработке групповой политики клиентская система Windows проверяет свое состояние на соответствие указанному WMI фильтру и если условия фильтра выполняются групповая политика применяется.
Чтобы создать WMI фильтр нужно открыть остнастку Управление групповой политикой, найти раздел Фильтры WMI нажать по нему ПКМ и в контекстном меню выбрать Создать
В открывшемся окне указать Имя фильтра и нажать кнопку Добавить для описания запроса.
Для применения фильтра к групповой политике, нужно выбрать политику, в описании политики (правая часть окна), на вкладке Область, внизу, в разделе Фильтр WMI указать нужный фильтр.
SELECT * FROM <class> WHERE <condition>
Условия для выборки указываются после слова WHEREУсловия
В условиях можно использовать логические операции AND, OR, NOT, а так же круглые скобки (), операция в скобках выполняется первой
Version LIKE "10.%" - Windows 10 и Windows Server 2016
Version LIKE "6.3%" - Windows 8.1 и Windows Server 2012 R2
Version LIKE "6.2%" - Windows 8 и Windows Server 2012
Version LIKE "6.1%" - Windows 7 и Windows Server 2008 R2
Version LIKE "6.0%" - Windows Vista и Windows Server 2008
Version LIKE "5.2%" - Windows Server 2003
Version LIKE "5.1%" - Windows XP
Version LIKE "5.0%" - Windows 2000
ProductType = "1" - клиентская ОС (Windows)
ProductType = "2" - контроллер домена AD
ProductType = "3" - серверная ОС (Windows Server)
OSArchitecture = "32-bit" - 32-битная система
OSArchitecture = "64-bit" - 64-битная система
name LIKE "HOST1" - компьютер с именем HOST1
name LIKE "HOST1%" - компьютер имя которого начинается с HOST1
name LIKE "%HOST1%" - компьютер имя которого содержит HOST1
Примеры фильтров
SELECT * FROM Win32_OperatingSystem WHERE (Version LIKE "6.1%" or Version LIKE "10.%") AND ProductType = "1"
SELECT * FROM Win32_OperatingSystem WHERE Version like "6.1%" AND ProductType="1" AND OSArchitecture = "64-bit"
SELECT * FROM win32_computerSystem WHERE name LIKE "HOST1" OR name LIKE "HOST2"
SELECT * FROM win32_computerSystem WHERE NOT name LIKE "HOST1" OR NOT name LIKE "HOST2" OR NOT name LIKE "HOST3"