Создание WMI фильтров для групповых политик (GPO) в домене AD
Технология WMI фильтров в групповых политиках (GPO) позволяет более гибко применять политики на клиентов, за счет использования различных правил, позволяющих указывать WMI запросы для формирования критериев выборки компьютеров, на которые будет действовать групповая политика. К примеру, с помощью WMI фильтров GPO вы можете применить политику, назначенную на OU, только к компьютерам с ОС Windows 10 (на других версиях Windows такая политика с фильтром применяться не будет).
Содержание:
- Для чего используются WMI фильтры GPO?
- Как создать новый WMI фильтр и привязать его к GPO?
- Примеры запросов для WMI фильтров GPO
- Тестирование WMI фильтра с помощью PowerShell
Для чего используются WMI фильтры GPO?
Обычно технология фильтрации групповых политик с помощью WMI (Windows Management Instrumentation) используется в ситуациях, когда объекты домена (пользователи или компьютеры) находятся в плоской структуре AD, а не в выделенном OU, либо если необходимо применить политики, в зависимости от версии ОС, ее сетевых настроек, наличию определенного установленного ПО или любом другом критерии, который можно выбрать с помощью WMI. При обработке такой групповой политики клиентом, Windows будет проверять свое состояние на соответствие указанному WMI запросу на языке WQL (WMI Query Language), и, если условия фильтра выполняются, такая GPO будет применена к компьютеру.
WMI фильтры групповых политик впервые появились еще в Windows XP, и доступны вплоть до последних версий Windows (Windows Server 2019, 2016, Windows 10, 8.1).
Как создать новый WMI фильтр и привязать его к GPO?
Чтобы создать новый WMI фильтр, откройте консоль управления доменными групповыми политиками Group Policy Management (gpmc.msc) и перейдите в раздел Forest -> Domains -> winitpro.ru -> WMI Filters. В этой секции содержатся все WMI фильтры домена. Создайте новый WMI фильтр (New).
В поле Name укажите имя фильтра, в поле Descriptions его описание (не обязательно). Чтобы добавить в фильтр WMI запрос нажмите на кнопку Add, укажите имя пространства имен WMI (по умолчанию root\CIMv2) и укажите код WMI запроса.
WMI запрос имеет следующий формат:
Select * from <WMI Class> WHERE <Property> = <Value>
В нашем примере вы хотим создать WMI фильтр, позволяющий применить групповую политику только на компьютеры с Windows 10. Код WMI запроса может выглядеть так:
Select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
Созданные WMI фильтры хранятся в объектах класса msWMI-Som домена Active Directory в разделе DC=…, CN=System, CN=WMIPolicy, CN=SOM их можно найти и отредактировать с помощью консоли adsiedit.msc.
После создания WMI фильтра его можно привязать к конкретному объекту GPO. Найдите нужную политику в консоли GPMC и на вкладке Scope в выпадающем меню секции WMI Filtering выберите созданный ранее WMI фильтр. В этом примере я хочу, чтобы политика автоматического назначения принтеров применялась только к компьютерам с Windows 10.
Дождитесь применения данной политики на клиентов, или обновите ее с помощью gpupdate /force
. При анализе примененных политик на клиенте нужно использовать команду gpresult /r. Если политика действует на клиента, но не применяется из-за WMI фильтра, такая политика в отчете будет иметь статус Filtering: Denied (WMI Filter) и указано имя WMI фильтра.
Примеры запросов для WMI фильтров GPO
Рассмотрим различные примеры WMI фильтров GPO, который чаще всего используются.
С помощью WMI фильтра вы можете выбрать тип ОС:
- ProductType=1 – любая клиенская ОС
- ProductType=2 – контроллер домена AD
- ProductType=3 – серверная ОС (Windows Server)
Версии Windows:
- Windows Server 2016 и Windows 10 — 10.%
- Windows Server 2012 R2 и Windows 8.1 — 6.3%
- Windows Server 2012 и Windows 8 — 6.
- Windows Server 2008 R2 и Windows 7 — 6.1%
- Windows Server 2008 и Windows Vista — 6.0%
- Windows Server 2003 — 5.2%
- Windows XP — 5.1%
- Windows 2000 — 5.0%
Вы можете комбинировать условия выборки в WMI запросе с помощью логических операторов AND и OR. Чтобы применить политику только к серверам с Windows Server 2016, код WMI запроса будет таким:
select * from Win32_OperatingSystem WHERE Version LIKE "10.%" AND ( ProductType = "2" or ProductType = "3" )
Выбрать 32 битные версии ОС Windows 8.1:
select * from Win32_OperatingSystem WHERE Version like "6.3%" AND ProductType="1" AND OSArchitecture = "32-bit"
Применить политику только к 64-битным ОС:
Select * from Win32_Processor where AddressWidth = "64"
Выбрать Windows 10 с определенным билдом, например Windows 10 1803:
select Version from Win32_OperatingSystem WHERE Version like “10. 0.17134” AND ProductType=”1″
Применить политику только к виртуальным машинам VMWare:
SELECT Model FROM Win32_ComputerSystem WHERE Model = “VMWare Virtual Platform”
Применить политику только к ноутбукам (см. статью wmi запрос выборки ноутбуков в SCCM:
select * from Win32_SystemEnclosure where ChassisTypes = "8" or ChassisTypes = "9" or ChassisTypes = "10" or ChassisTypes = "11" or ChassisTypes = "12" or ChassisTypes = "14" or ChassisTypes = "18" or ChassisTypes = "21"
WMI фильтр, который применится только к компьютерам, чьи имена начинаются на “msk-pc“(например, для блокировки подключения USB накопителей на этих устройствах):
SELECT Name FROM Win32_ComputerSystem WHERE Name LIKE ‘msk-pc%’
Пример использования WMI фильтра для тонкого нацеливания групповой политики к IP подсетям описывается в статье WMI фильтр для привязки GPO к IP подсети. Например, чтобы применить политику к клиентам в нескольких IP подсетях, используйте фильтр:
Select * FROM Win32_IP4RouteTable WHERE (Mask='255. 255.255.255' AND (Destination Like '192.168.1.%' OR Destination Like '192.168.2.%'))
Применять политику к компьютерам, с количеством оперативной памяти больше 1 Гб:
Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824
WMI фильтр проверки наличия на компьютере Internet Explorer 11:
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 запросов иногда нужно получать значения различных параметров на компьютере. Вы помете получить эти данный с помощью командлета Get-WMIObject. Например, выведем атрибуты и значения WMI класса Win32_OperatingSystem: Get-WMIObject Win32_OperatingSystem
SystemDirectory : C:\WINDOWS\system32
Organization :
BuildNumber : 17134
RegisteredUser : Windows User
SerialNumber : 00331-10000-00001-AA494
Version : 10. 0.17134
Чтобы вывести все доступные параметры класса:
Get-WMIObject Win32_OperatingSystem| Select *
Для тестирования WMI фильтров на компьютерах можно использовать PowerShell. Допустим, вы написали сложный WMI запрос и его хотите проверить (соответствует ли компьютер данному запросу или нет). Например, вы создали WMI фильтр проверки наличия IE 11 на компьютере. На целевом компьютере вы можете выполнить этот WMI запрос с помощью командлета
get-wmiobject -query 'SELECT * FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version LIKE "11.%"'
Если данная команда что-то возвращает, значит компьютер соответствует условиям запроса. Если команда get-wmiobject ничего не вернула — компьютер не соответствует запросу.
Например, запустив указанный запрос на компьютере с Windows 10 и IE 11, команда вернет:Compressed : False
Encrypted : False
Size :
Hidden : False
Name : c:\program files\internet explorer\iexplore. exe
Readable : True
System : False
Version : 11.0.17134.1
Writeable : True
Это значит, что IE 11 установлен на компьютере и GPO с таким WMI фильтром будет применяться к этому компьютеру.
Итак, мы разобрались как использовать WMI фильтры для применения групповых политик только компьютерам, попадающим под условия запроса. Нужно учитывать наличие WMI фильтров при анализе причин, из-за которых не применяется политика на компьютере.
Создание фильтров WMI для объекта групповой политики (Windows) — Windows security
Обратная связь
Twitter LinkedIn Facebook Адрес электронной почты
- Статья
- Чтение занимает 3 мин
-
- Применяется к:
- ✅ Windows 10, ✅ Windows 11, ✅ Windows Server 2016, ✅ Windows Server 2019, ✅ Windows Server 2022
Чтобы убедиться, что каждый объект групповой политики, связанный с группой, можно применить только к устройствам под управлением правильной версии Windows, используйте оснастку MMC управления групповая политика, чтобы создать и назначить фильтры WMI для объекта групповой политики.
Хотя вы можете создать отдельную группу членства для каждого объекта групповой политики, вам придется управлять членством в разных группах. Вместо этого используйте только одну группу членства и позвольте фильтрам WMI автоматически обеспечить применение правильного объекта групповой политики к каждому устройству.- Создание фильтров WMI для объекта групповой политики
- Создание фильтра WMI, который запрашивает указанную версию Windows
- Связывание фильтра WMI с объектом групповой политики
Учетные данные администратора
Для выполнения этих процедур необходимо быть участником группы администраторов домена либо иметь делегированные разрешения на изменение объектов групповой политики.
Сначала создайте фильтр WMI и настройте его для поиска указанной версии (или версий) операционной системы Windows.
Создание фильтра WMI, который запрашивает указанную версию Windows
Откройте консоль управления групповая политика.
В области навигации разверните узел Лес: Имя_вашего леса, домены, Имя_домена, а затем выберите Фильтры WMI.
Выберите Действие, а затем — Создать.
В текстовом поле Имя введите имя фильтра WMI. Обязательно используйте имя, четко указывающее назначение фильтра. Проверьте, есть ли в вашей организации соглашение об именовании.
В текстовом поле Описание введите описание для фильтра WMI. Например, если фильтр исключает контроллеры домена, можно указать это в описании.
Нажмите кнопку Добавить.
Оставьте для параметра Пространство имен значение root\CIMv2.
В текстовом поле Запрос введите:
select * from Win32_OperatingSystem where Version like "6.%"
Этот запрос вернет значение true для устройств под управлением по крайней мере Windows Vista и Windows Server 2008. Чтобы задать фильтр только для Windows 8 и Windows Server 2012, используйте «6,2%». Для Windows 11, Windows 10 и Windows Server 2016 используйте «10.%». Чтобы указать несколько версий, объедините их с или, как показано ниже.
... where Version like "6.1%" or Version like "6.2%"
Чтобы ограничить запрос только клиентами или серверами, добавьте предложение, содержащее параметр ProductType. Чтобы отфильтровать только клиентские операционные системы, такие как Windows 8 или Windows 7, используйте только ProductType=»1″. Для серверных операционных систем, которые не являются контроллерами домена, а для Windows 10 и Windows 11 многосеансового использования используйте ProductType=»3″. Только для контроллеров домена используйте ProductType=»2″. Это полезное различие, так как часто требуется предотвратить применение объектов групповой политики к контроллерам домена в сети.
Следующее предложение возвращает значение true для всех устройств, которые не являются контроллерами домена:
. .. where ProductType="1" or ProductType="3"
Следующий полный запрос возвращает значение true для всех устройств, на которых выполняются Windows 10 и Windows 11, и возвращает значение false для любой операционной системы сервера или любой другой клиентской операционной системы.
select * from Win32_OperatingSystem where Version like "10.%" and ProductType="1"
Конкретные версии Windows 10 можно использовать, включив основную версию сборки в запрос. Следующий запрос возвращает значение true для всех устройств, работающих Windows 10 20h3 (с основной версией сборки
19042
), и возвращает значение false для любой операционной системы сервера или любой другой клиентской операционной системы. Дополнительные сведения о версиях сборки Windows 10 см. в разделе Windows 10 сведений о выпуске.select * from Win32_OperatingSystem where Version like "10.0.19042" and ProductType="1"
Следующий запрос возвращает значение true для любого устройства, на котором выполняется Windows Server 2016, кроме контроллеров домена:
select * from Win32_OperatingSystem where Version like "10. %" and ProductType="3"
Нажмите кнопку ОК , чтобы сохранить запрос в фильтре.
Нажмите кнопку Сохранить , чтобы сохранить готовый фильтр.
Примечание
Если вы используете несколько запросов в одном фильтре WMI, все эти запросы должны возвращать значение TRUE для выполнения требований к фильтру и для применения объекта групповой политики.
Связывание фильтра WMI с объектом групповой политики
После создания фильтра с правильным запросом свяжите фильтр с объектом групповой политики. Фильтры можно повторно использовать одновременно с несколькими GPO; Вам не нужно создавать новый объект групповой политики для каждого объекта групповой политики, если существующий объект соответствует вашим потребностям.
Откройте консоль управления групповая политика.
В области навигации найдите и выберите объект групповой политики, который нужно изменить.
В разделе Фильтрация WMI выберите правильный фильтр WMI в списке.
Выберите Да , чтобы принять фильтр.
Обратная связь
Отправить и просмотреть отзыв по
Этот продукт Эта страница
Просмотреть все отзывы по странице
Создание фильтров WMI для объекта групповой политики (Windows)
Обратная связь Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 3 минуты на чтение
- Применимо к:
- ✅ Windows 10 , ✅ Windows 11 , ✅ Windows Server 2016 , ✅ Windows Server 2019 , ✅ Windows Server 2022
Чтобы гарантировать, что каждый объект групповой политики, связанный с группой, может применяться только к устройствам, работающим под управлением правильной версии Windows, используйте оснастку MMC для управления групповыми политиками, чтобы создать и назначить фильтры WMI для объекта групповой политики. Хотя вы можете создать отдельную группу членства для каждого объекта групповой политики, тогда вам придется управлять членством в разных группах. Вместо этого используйте только одну группу участников и позвольте фильтрам WMI автоматически гарантировать применение правильного объекта групповой политики к каждому устройству.
- Создание фильтров WMI для объекта групповой политики
- Для создания фильтра WMI, который запрашивает указанную версию Windows
- Чтобы связать фильтр WMI с объектом групповой политики
Учетные данные администратора
Для выполнения этих процедур вы должны быть членом группы администраторов домена или иным образом иметь делегированные разрешения на изменение объектов групповой политики.
Сначала создайте фильтр WMI и настройте его для поиска указанной версии (или версий) операционной системы Windows.
Чтобы создать фильтр WMI, который запрашивает указанную версию Windows
Откройте консоль управления групповыми политиками.
В области навигации разверните Forest: YourForestName , разверните Domains , разверните YourDomainName , а затем выберите WMI Filters .
Выберите Действие , а затем выберите Новый .
В Имя введите имя фильтра WMI. Обязательно используйте имя, которое ясно указывает на назначение фильтра. Проверьте, есть ли в вашей организации соглашение об именовании.
В текстовом поле Описание введите описание фильтра WMI. Например, если фильтр исключает контроллеры домена, вы можете указать это в описании.
Выбрать Добавить .
Оставить Значение пространства имен установлено на root\CIMv2 .
В текстовом поле Запрос введите:
выберите * из Win32_OperatingSystem, где версия вроде "6.%"
Этот запрос вернет true для устройств под управлением как минимум Windows Vista и Windows Server 2008. Чтобы установить фильтр только для Windows 8 и Windows Server 2012, используйте «6,2%». Для Windows 11, Windows 10 и Windows Server 2016 используйте «10.%». Чтобы указать несколько версий, объедините их с помощью или, как показано ниже:
... где версия типа "6,1%" или версия типа "6,2%"
Чтобы ограничить запрос только клиентами или только серверами, добавьте предложение, включающее параметр ProductType. Чтобы отфильтровать только клиентские операционные системы, например Windows 8 или Windows 7, используйте только ProductType=»1″. Для серверных операционных систем, не являющихся контроллерами домена, а также для многосеансовых Windows 10 и Windows 11 используйте ProductType=»3″. Только для контроллеров домена используйте ProductType=»2″. Это полезное различие, потому что вы часто хотите предотвратить применение ваших объектов групповой политики к контроллерам домена в вашей сети.
Следующее предложение возвращает true для всех устройств, не являющихся контроллерами домена:
... где ProductType="1" или ProductType="3"
Следующий полный запрос возвращает true для всех устройств под управлением Windows 10 и Windows 11 и возвращает false для любой операционной системы сервера или любой другой клиентской операционной системы.
выберите * из Win32_OperatingSystem, где версия вроде «10.%» и ProductType = «1»
Определенные версии Windows 10 могут быть нацелены на добавление основная версия сборки в запросе. Следующий запрос возвращает true для всех устройств под управлением Windows 10 20h3 (с основной версией из
19042
) и возвращает false для любой серверной операционной системы или любой другой клиентской операционной системы. Дополнительную информацию о версиях сборки Windows 10 можно найти в информации о выпуске Windows 10.выберите * из Win32_OperatingSystem, где версия вроде «10.0.19042» и ProductType = «1»
Следующий запрос возвращает true для любого устройства под управлением Windows Server 2016, кроме контроллеров домена:
выберите * из Win32_OperatingSystem, где версия вроде «10.%» и ProductType = «3»
Выберите OK , чтобы сохранить запрос в фильтре.
Выберите Сохранить , чтобы сохранить заполненный фильтр.
Примечание
Если вы используете несколько запросов в одном фильтре WMI, все эти запросы должны возвращать TRUE для выполнения требований фильтра и применения объекта групповой политики.
После создания фильтра с правильным запросом свяжите фильтр с объектом групповой политики. Фильтры можно повторно использовать со многими объектами групповой политики одновременно; вам не нужно создавать новый для каждого объекта групповой политики, если существующий соответствует вашим потребностям.
Откройте консоль управления групповыми политиками.
В области навигации найдите и выберите объект групповой политики, который требуется изменить.
В разделе Фильтрация WMI выберите правильный фильтр WMI из списка.
Выберите Да , чтобы принять фильтр.
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт Эта страница
Просмотреть все отзывы о странице
Групповая политика: Кратко о фильтрах WMI — Технический блог
Последнее обновление: 12 февраля 2018 г. , автор: Дишан М. Фрэнсис
Фильтры инструментария управления Windows (WMI) — это еще один метод, который мы можем использовать для фильтрации цели групповой политики. Этот метод можно использовать только для фильтрации объектов компьютера и на основе значений атрибутов компьютера. Например, фильтры WMI можно использовать для фильтрации различных версий операционной системы, архитектуры процессора (32-разрядная/64-разрядная), ролей сервера Windows, параметров реестра, идентификатора события и т. д. Фильтры WMI будут работать с данными WMI компьютеров и решать, следует ли применять политику или нет. Если он соответствует запросу WMI, он будет обрабатывать групповую политику, а если он ложный, он не будет обрабатывать групповую политику. Этот метод был впервые представлен в Windows Server 2003.
Мы можем использовать GPMC для создания фильтров WMI и управления ими. Прежде чем применить фильтр к объекту групповой политики, сначала нам нужно его создать. Один фильтр WMI может быть подключен ко многим объектам групповой политики. Купить объект групповой политики можно только с одним фильтром WMI.
Чтобы создать фильтр WMI, откройте GPMC , щелкните правой кнопкой мыши Фильтр WMI и выберите Новый .
Откроется новое окно, в котором мы можем определить запрос WMI.
Нажав кнопку Добавить , мы можем определить Пространство имен и запрос WMI. В качестве примера я создал запрос WMI для фильтрации 32-разрядной версии операционной системы Windows 10.
выберите * из Win32_OperatingSystem, ГДЕ Версия, например "10.%" И ProductType="1" И НЕ OSArchitecture = "64-bit"
Ниже вы можете найти несколько примеров часто используемых запросов WMI,
Для фильтрации ОС — Windows 8 — 64-битная
выберите * из Win32_OperatingSystem, ГДЕ Версия, например «6,2%», И ProductType = «1», И OSArchitecture = «64-bit»
Для фильтрации ОС — Windows 8 — 32-разрядная
выберите * из Win32_OperatingSystem, ГДЕ Версия, например «6,2%» И ProductType = «1» И НЕ OSArchitecture = «64-разрядная» 6 Чтобы отфильтровать любую серверную ОС Windows — 64-разрядную
, выберите * из Win32_OperatingSystem, где (ProductType = "2") ИЛИ (ProductType = "3") AND OSArchitecture = "64-bit"
Чтобы применить политику в выбранный день недели
выберите DayOfWeek из Win32_LocalTime, где DayOfWeek = 1
День 1 — понедельник.