Фильтрация групповых политик с помощью WMI фильтров
В этой статье мы поговорим о технологии WMI (Windows Management Interface) фильтрации в групповых политиках. Данная технология позволяет создать различные правила, на основании которых можно выбрать к каким объектам домена AD или конкретного OU будет применяться групповая политика, а к каким не будет.
Обычно технология WMI фильтрации групповых политик может применяться в ситуациях, когда множественные объекты (пользователи или компьютеры) находятся в плоской структуре AD, а не в выделенном OU, либо если необходимо применить политики, основываясь, например, на роли ОС, ее версии, сетевой конфигурации или любом другом критерии, который можно задать с помощью параметров Windows Management Instrumentation. При обработке групповых политик клиентом система Windows будет проверять себя на соответствие заданному WMI фильтру и в случае, если она соответствует фильтру, политика будет применена.
Напомню, что WMI фильтры групповых политик впервые появились в Windows XP, и в последующих версиях Windows (Windows Server 2003, Windows 7 Windows Server 2008), эта технология продолжала применяться и развиваться. WMI фильтрация GPO не работает для ОС семейства Windows 2000, так что придется обновится! ( я думаю 12 лет это достаточный срок для того, чтобы обновить старую версию ОС на более новую).
WMI фильтры – это один из видов объектов Active Directory, хранятся они в разделе CN=System, CN=WMIPolicy, CN=SOM.
Попробуем попрактиковаться в применении WMI фильтров групповых политик. Тестовое задание будет следующим: необходимо применить групповую политику на все сервера, на которых установлена ОС Windows Server 2008 R2
Создать WMI фильтр можно с помощью консоли управления групповыми политиками (Group Policy Management Console) и перейти в раздел «WMI filters». С помощью контекстного меню создайте новый WMI фильтр. В появившемся окне укажите его имя, описание и сам WMI запрос.
WMI запрос, позволяющий выбрать все сервера на Windows Server 2008 R2, будет выглядеть так:
select * from Win32_OperatingSystem where Version like “6.1%” and (ProductType = “2? or ProductType = “3?)
Если вас интересуют другие версии ОС Windows, воспользуйтесь следующим значениями WMI параметра Version:
- 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%
- Windows 2000 — 5.0%
В зависимости от того, является ли целевой компьютер клиентом или сервером, нужно указать следующее значение параметра ProductType:
- Клиент: ProductType=1
- Контроллер домена: ProductType=2
- Сервер: ProductType=3
Чтобы отфильтровать все компьютеры с Windows 8, WMI запрос будет таким:
select * from Win32_OperatingSystem WHERE Version LIKE "6.2%" and ProductType = "1"
Если нужны все сервера с Windows Server 2012, запрос будет таким:
select * from Win32_OperatingSystem WHERE Version LIKE "6.2%" AND ( ProductType = "2" or ProductType = "3" )
После того, как мы создали WMI фильтр, нужно привязать его к групповой политике, для чего найдите интересующую вас групповую политику и в разделе “WMI Filtering” в выпадающем меню выбрать созданный ранее фильтр.
На тестовых клиентах необходимо дождаться применения политик или же запустить принужительное обновление командой gpupdate /force. И проверить, что политика применяется только на серверас с Windows Server 2008 R2 (для просмотра примененных политик воспользуйтесь командой gpresult /r).
Приведу еще рад WMI запросов, которые можно использовать для создания WMI фильтров групповых политик:
Выбрать все машины, на которых установлен Internet Explorer 8
SELECT path,filename,extension,version FROM CIM_DataFile WHERE path="\\Program Files\\Internet Explorer\\" AND filename="iexplore" AND extension="exe" AND version>"8.0"
Выбрать 32 битные ОС:
Select * from Win32_Processor where AddressWidth = "32"
Выбрать 64 битные ОС:
Select * from Win32_Processor where AddressWidth = "64"
Компьютеры, с количество оперативной памяти на которых больше 1 Гб
Select * from WIN32_ComputerSystem where TotalPhysicalMemory >= 1073741824