Использование WMI фильтров групповых политик (GPO) в домене AD

WMI фильтры групповых политики позволяют создать дополнительные условия, в которых определяются параметры компьютеров, к которым нужно нужно применять настройки GPO. Например, с помощью WMI фильтра вы можете применить политику к компьютерам с определенным версией Windows; с определенными настройками; характеристиками оборудования (размеру RAM, HDD); на которых установлена определенная программа; к компьютерам в указанной IP подсети и т.д.

WMI (Windows Management Instrumentation) фильтр в GPO представляет собой запрос на языке WQL (WMI Query Language). Доменный компьютер перед тем, как применить конкретный объект GPO, выполняет такой WMI запрос и опрашивает свое состояние. Если состояние компьютера соответствует условиям выполняются, такая групповая политика будет применена к компьютеру.

Как создать и привязать WMI фильтр к GPO

Для управления WMI фильтрами используется консоль управления доменными групповыми политиками .

  1. Откройте консоль gpmc.msc
  2. Перейдите в раздел WMI Filters и создайте новый фильтр
  3. Укажите название фильтра и описание (не обязательно)Создать WMI фильтр групповых политик
  4. Нажмите Add. Выберите пространство имен WMI (в большинстве случаев используется root\CIMv2). Укажите код WMI запроса в следующем формате: Select * from <WMI Class> WHERE <Property> = <Value> Например, следующий WMI запрос можно использовать, чтобы применить GPO только к компьютерам с Windows 10 и 11: Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
    Указать код wmi запроса в фильтре gpo
  5. Теперь WMI фильтр можно привязать к GPO. Например, вы хотите, чтоб политика установки принтеров применялась только к компьютерам с Windows 10 и 11. В разделе WMI Filtering групповой политики выберите WMI фильтр, который вы создали.Привязать WMI фильтр к политике домена
  6. Обновите настройки GPO на клиентах. Теперь политика будет применяться только к компьютерам, которые удовлетворяют условиям WMI фильтра. Для анализа примененных политики можно использовать команду gpresult /r. Если политика действует на клиента, но не применяется из-за WMI фильтра, такая политика в отчете gpresult будет иметь статус Filtering: Denied (WMI Filter) и указано имя WMI фильтра.gpresult фильтрация по wmi запросам

Примеры WMI запросов для фильтров GPO

Рассмотрим часто используемые примеры WMI запросов для фильтров GPO.

В зависимости от типа ОС:

  • ProductType=1 – рабочая станция (клиентская версия Windows)
  • ProductType=2 – контроллер домена AD
  • ProductType=3 – серверная ОС (Windows Server)

В зависимости от версии Windows:

Version like "X.X%"

  • Windows Server 2016/2019/2022 и Windows 10/11 — 10.%
  • Windows Server 2012 R2 и Windows 8.1 — 6.3%
  • Windows Server 2012 и Windows 8 — 6.2%
  • Windows Server 2008 R2 и Windows 7 — 6.1%
  • Windows Server 2008 и Windows Vista — 6.0%
  • Windows Server 2003 — 5.2%
  • Windows XP — 5.1%

С помощью логических операторов AND и OR можно комбинировать несколько условий в WMI запросе. Например, чтобы применить GPO только к серверам с Windows Server 2019:

select * from Win32_OperatingSystem WHERE Caption LIKE "%2019%" AND Version LIKE "10.%" AND ( ProductType = "2" or ProductType = "3")

Компьютеры с 64 битными версиями Windows 10:

select * from Win32_OperatingSystem WHERE Version like "10.%" AND ProductType="1" AND OSArchitecture = "64-bit"

Компьютеры с определенным билдом Windows 11 (например, 23H2, билд 22631):

select * from Win32_OperatingSystem WHERE Caption like "%Windows 11%" AND ProductType="1" AND BuildNumber = "22631"

Применить политику только к виртуальным машинам VMWare:

SELECT Model FROM Win32_ComputerSystem WHERE Model LIKE "%VMware%"

Применить политику только к ноутбукам:

select * from Win32_ComputerSystem where PCSystemType="2"

Только к десктопным компьютерам (рабочим станциям):

select * from Win32_ComputerSystem where PCSystemType="1" or PCSystemType="3"

WMI фильтр для выбора компьютеров, чьи имена начинаются на “msk-pc

SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE "msk-pc%"

Применить политику только к компьютерам в определенных IP подсетях (WMI фильтр для привязки GPO к IP подсети):

Select * FROM Win32_IP4RouteTable WHERE (Mask='255.255.255.255' AND (Destination Like '192.168.1.%' OR Destination Like '192.168.2.%'))

Компьютеры с более чем 4 ГБ RAM:

Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 4200000000

Компьютеры, на которых установлен архиватор 7ZIP:

Select * From Win32_Product where Name like "%7-Zip %"

На которых установлен Internet Explorer (по умолчанию IE удален в современных версиях Windows):

SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version>"11.0"

Проверка WMI фильтров с помощью PowerShell

WMI фильтры перед применением в GPO можно протестировать на целевых компьютерах. Это позволит понять, будет или не будет политика с таким WMI запросов применяться на определенных компьютерах. Для просмотра всех доступных WMI классов на компьютере выполните PowerShell команду:

Get-WmiObject -List

Вывести доступные атрибуты и значения WMI класса Win32_OperatingSystem:

Get-WMIObject Win32_OperatingSystem| Select *

Get-WMIObject просмотр объектов и значений wmi классов

Для навигации в пространстве имен WMI и просмотра классов и атрибутов можно использовать утилиту WMI Code Creator v1.0 (https://www.microsoft.com/en-us/download/details.aspx?id=8572).

Утилита WMI Code Creator для просмотра пространтсва имен WMI

Чтобы проверить ваш WMI запроса на компьютере и понять, соответствует ли компьютер данному запросу или нет, укажите его код в параметре -query. Например, такой WMI запрос проверяет, установлен ли на компьютере Microsoft Office:

Get-WmiObject -query 'Select * From Win32_Product where Name like "%Office 16 Click-to-Run%"'

Если такая команда возвращает в ответ список атрибутов, значит компьютер соотвествует вашему запросу и GPO с таким WMI фильтром будет применена. Если команда get-wmiobject ничего не вернула — компьютер не соответствует запросу.

Проверка рузультатов WMI запроса с помощью PowerShell

В новых версиях PowerShell Core 7.x, командлет Get-WmiObject является устаревшим и вместо него нужно использовать Get-CimInstance .

WMI фильтры GPO позволяют создать динамические правила, в которых определяются характеристики компьютеров, к которым нужно применить групповые политики.


Предыдущая статья Следующая статья


Комментариев: 53 Оставить комментарий

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Я не робот( Обязательно отметьте)