Фильтрация групповых политик с помощью WMI фильтров | Windows для системных администраторов

Фильтрация групповых политик с помощью WMI фильтров

В этой статье мы поговорим о технологии WMI (Windows Management Interface) фильтрации в групповых политиках. Данная технология позволяет создать различные правила, на основании которых можно выбрать к каким объектам домена AD или конкретного OU будет применяться групповая политика, а к каким не будет.

Обычно технология WMI фильтрации групповых политик может применяться в ситуациях, когда множественные объекты (пользователи или компьютеры) находятся в плоской структуре AD, а не в выделенном OU, либо если необходимо применить политики, основываясь, например, на роли ОС, ее версии, сетевой конфигурации или любом другом критерии, который можно задать с помощью параметров   Windows Management Instrumentation.  При обработке групповых политик клиентом система Windows будет проверять себя на соответствие заданному WMI  фильтру и в случае, если она соответствует фильтру, политика будет применена.

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 фильтрация в GPO

Попробуем попрактиковаться в применении 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” в выпадающем меню выбрать созданный ранее фильтр.

Применям WMI фильтр групповой политики

На тестовых клиентах необходимо дождаться применения политик или же запустить принужительное обновление командой 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

Также пример использования WMI фильтра для тонкого нацеливания групповой политике описывается в статье WMI фильтр для привязки GPO к IP подсети

Еще записи по теме: Group Policy
Понравилась статья? Скажи спасибо и расскажи друзьям!
Назад:
Вперед:

Комментариев: 16

Оставить комментарий
  1. Sasha Odarchuk | 26.10.2013
    Как в одно ВМИ-фильтре выбрать все ПК где ОС либо Вин8 либо Вин8.1 ??
    Ответить
    • itpro | 28.10.2013

      SELECT * FROM Win32_OperatingSystem WHERE (Version LIKE '6.2%' OR Version LIKE '6.3%') AND ProductType = '1'
      ЗЫ. Добавил в статью значение WMI параметров Version для Windows 8.1 и Windows 2012 R2

       
       
       

      Ответить
  2. Андрей | 21.11.2013

    Могли бы вы привести пример, как сделать двойное условие.
    Например: компьютеры с Windows XP и ОЗУ<1 Гб
    проблема в том что секции FROM разные и соответсвенно просто добавить в Where  AND не работает.

    Ответить
    • itpro | 22.11.2013

      Сложные конструкции с объединениями (как в SQL) на WQL построить не получиться, это все таки узкоспециализированный язык. Но при создании WMI фильтра можно указать  несколько разных WMI запросов. При выполнении фильтрации они будут применяться по-очереди
      Первый запрос:
      SELECT * FROM Win32_OperatingSystem WHERE Version LIKE "5.1%" AND ProductType = "1"
      Второй запрос:
      SELECT * FROM WIN32_ComputerSystem WHERE TotalPhysicalMemory >= 1073741824

      Ответить
      • Андрей | 23.11.2013

        Это я увидел, но выполняя эти запросы по очереди будут выбраны сначала все компьютеры с windows xp (с любым объёмом памяти) а потом все компьютеры с ОЗУ меньше 1 Гб (с любой виндовс), а мне нужны компьютер удовлетворяющие одновременно двум условиям…

        Ответить
        • MaxOrehov | 23.11.2013

          А не проще воспользоваться item-level targeting в GPP (group pilicy preferences)?
          Например, с помощью WMI фильтра выбираем машины с XP, а в GPP делаем условие, что применять политику если RAM< 1 Gb

          Ответить
  3. V I S A G E | 18.11.2014

    Спасибо за фильтры. Люблю тебя)

    Ответить
  4. Александр | 15.05.2015

    Подскажите.
    Создал политику, которая назначает принтеры.
    WMI-фильтры не устанавливал.
    Решил исключить из этой политики компы с серверной ОС, создал фильтр, написал запрос: Select * from Win32OperatingSystem where ProductType=1
    После назначил политике фильтр и в итоге, политика не рпименяется нигде.

    Ответить
    • Александр | 16.06.2015

      И так прошел месяц. Жаль что ответа не дождался:(

      Ответить
      • itpro | 18.06.2015

        Пропустил ваше сообщение, каюсь. Какая версия схемы AD, ОС на контроллере домена и на клиенте, с которого выполняете редактирование GPO?

        Ответить
    • Роман | 18.08.2015

      select * from Win32_OperatingSystem where ProductType ="1"

      Ответить
  5. Alexander | 13.10.2015

    Мне так и не удалось начать использовать WMI фильтры в домене где все DC работают на Windows Server 2012R2. :-( Полазил по форумам и нашим и буржуйским — везде одно и то же «20120R2? не будет работать»
    может починят когда-нибудь?

    Ответить
    • itpro | 15.10.2015

      Не тестировал фильтры на чистом домене 2012R2. Максимальный уровень схемы пока 2012.
      Так фильтры создаются и не применяются, или даже не создаются? Лог gpresult парсили?

      Ответить
      • Alexander | 15.10.2015

        Фильтр создается. При создании фильтра вылезает матюг (см картинку)

        1

        Не смотря на предпреждение, продолжаю делать GPO

        2

        По gpresult вот что выдается (сама политика пустая), но мог бы хотя бы написать про Empty GP? Мне кажется, просто ничего не видится. Если нужно, выдачу gpresult скину полностью на почту.

        COMPUTER SETTINGS
        ——————
        CN=IMPAD02,OU=Domain Controllers,DC=***,DC=***
        Last time Group Policy was applied: 15.10.2015 at 15:31:31
        Group Policy was applied from: IMPAD02.***.***
        Group Policy slow link threshold: 500 kbps
        Domain Name: ***
        Domain Type: Windows 2008 or later

        Applied Group Policy Objects
        ——————————
        Default Domain Controllers Policy
        WSUS Update Servers
        Power Options
        Default Domain Policy
        Local Group Policy

        Ответить
      • Alexander | 15.10.2015

        Ответил, но тут пока ответа не вижу.
        Если не появится, продублирую

        Ответить
        • itpro | 26.10.2015

          Появление ошибки — похоже просто баг консоли gpmc в 2012R2. Сейчас протестировал ваш WMI фильтр (Select * from Win32_ComputerSystem where DomainRole = 5) с непустой политикой — все применяется нормально.

          Ответить
Полные правила комментирования на сайте winitpro.ru. Вопросы, не связанные с содержимым статьи или ее обсуждением удаляются.

Сказать Спасибо! можно на этой странице или (еще лучше) поделиться с друзями ссылкой на понравившуюся статью в любимой социальной сети(специально для этого на сайте присуствуют кнопки популярных соц. сетей).

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

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



MAXCACHE: 0.27MB/0.00109 sec