Wmi фильтр для windows

WMI-фильтры — создание и проверка ­ Дневник ­ Максим Боголепов

WMI-фильтры — создание и проверка

Разрастание компьютерного парка в нашей организации неизбежно повлекло за собой появление всевозможных десктопных операционных систем от «старушки» Microsoft Windows XP до последних Windows 8.1 и Windows 10. Администрирование такой разновидности операционок в доменной сети может вызвать некоторые трудности, если не воспользоваться одним из удобных инструментов управления, предлагаемых Microsoft. К таким средствам для выборочного применения групповых политик в домене относятся wmi-фильтры.

В одной из своих прошлых заметок я упомянул вскользь о возможности применения wmi-фильтров к компьютерам под управлениям Windows XP (смотрите шаг 7-8 указанной статьи). В сети интернет существует довольно много подобных примеров, но прежде чем слепо доверять безвестным авторам и применять их на практике у себя, советую вам прочитать алгоритм самостоятельного создания и проверки правильности данных wmi-фильтров.

Для начала необходимо получить цифровое соответствие той или иной версии операционной системы. Сделать это вы можете командами ver или systeminfo :

Итак, получаем номера последних на сегодняшний момент версий ОС (в порядке возрастания):

  • Windows XP SP3 — 5.1.260;
  • Windows Server 2003 (R2) SP2 — 5.2.3790;
  • Windows Vista SP2 — 6.0.6002;
  • Windows Server 2008 SP2 — 6.0.6002;
  • Windows 7 SP1 — 6.1.7601;
  • Windows Server 2008 R2 SP1 — 6.1.7601;
  • Windows 8 — 6.2.9200;
  • Windows Server 2012 — 6.2.9200;
  • Windows 8.1 — 6.3.9600;
  • Windows Server 2012 R2 — 6.3.9600;
  • Windows 10 — 10.0.10586.

Цифровое соответствие версии не зависит от разрядности операционной системы, а так же от её редакции (home/professional/enterprise и т.д.).

Теперь приведу некоторые wmi-фильтры, используемые мной в оснастке управления групповой политикой:

notXPandx86 – фильтр для выявления компьютеров, отличных от Windows XP с разрядностью ОС х86:

WindowsXP – фильтр для выявления компьютеров под управлением Windows XP:

×86 – фильтр для выявления компьютеров с ОС x86 разрядности:

×64 – фильтр для выявления компьютеров с ОС x64 разрядности:

Чтобы проверить любой wmi-фильтр, необходимо на домен контроллере (у меня он под управлением Windows Server 2012 R2) открыть Модуль Active Directory для Windows PowerShell, либо нажать Win+R и выполнить команду: %windir%\system32\WindowsPowerShell\v1.0\powershell.exe -noexit -command import-module ActiveDirectory .

Далее наберём следующую последовательность команд:

Первой командой мы в массив $comps заносим имена всех компьютеров домена.
Во второй команде в переменную $query мы прописываем интересующий нас запрос (будущий wmi-фильтр).
Третьей командой мы осуществляем поиск интересующих нас компьютеров, соответствующих нашему запросу (в примере – все компьютеры с ОС Windows XP) (gwmi – сокращённое от Get-WmiObject).

В результате отработки команды вы увидите все интересующие вас компьютеры. Так же в вывод попадут ошибки вида:

Означающие, что компьютер домена, к которому сервер пытается сделать запрос, в настоящее время выключен.

В оснастке Просмотр событий -> Журналы Windows -> Система при этом вы обнаружите ошибки следующего вида:

Так же вы можете увидеть ошибку вида (гораздо реже):

Она означает, что пользователь, от имени которого осуществляется запрос, не имеет прав на компьютер, к которому в данный момент осуществляется запрос.

Чтобы этого избежать, добавьте в запрос ключ -erroraction SilentlyContinue . Третья строка примет вид:

Проверить результат выполнения этой последовательности команд вы сможете следующей образом:

При построении запроса, необходимо точно знать, что в wmi пространстве имён root/CIMV2 в классе, в котором вы планируете осуществляете поиск в новом wmi-фильтре, присутствуют универсальные для различных операционных систем ключи. Проверить это можно задав вопрос к компьютерам с заранее известной ОС:

Теперь несколько наглядных примеров. Мной будет использоваться пример с последовательностью команд. Изменяться будет только сам запрос $query :

Читайте также:  Перезагружается компьютер сразу windows

— Windows 7 32-bit; — опять же Windows 7 32-bit (в данных запросах OSA rchitecture!=‘64-bit’ идентично OSA rchitecture=‘32-bit’); — ОС старше или равно Windows 7 (рабочая станция, т.к. ProductType=‘1’. Если ProductType=‘3’ – то выберутся серверные ОС); — ОС старше Windows XP и с разрядностью x86; — поиск ОС по маске (до любого необходимого вам знака). в данном случае выберутся 64-х битные ОС Windows 7 и Windows Server 2008 R2. (Поиск операционок по маске очень полезно при работе с Windows 10).

Напоследок небольшой совет. Старайтесь использовать максимально простые фильтры, чтобы потом мучительно долго не разбираться, почему к определённой группе компьютеров не применяется та или иная политика.

Надеюсь, кому-нибудь данный материал окажется полезным. Удачи!

Rating: 4.6/5(5 votes cast)

Wmi фильтр для windows

Добрый день! Уважаемые читатели и гости IT блога Pyatilistnik.org. В прошлый раз мы с вами разобрали, устранение ошибки 0xc0000098. В сегодняшней заметке мы разберем ситуацию, при которой вам нужно применить групповую политику только для определенного типа компьютеров или устройств. Уверен, что данная заметка будет полезна и позволит более тонко управлять свои парком устройств.

Постановка задачи

Предположим, что у меня есть групповая политика, которая должна раздавать WIFI настройки профилей подключения к корпоративной сети. Необходимо данную GPO применить только к ноутбукам, отфильтровав политику именно по ним. Или же обратная ситуация, у вас есть политика, которую вы бы хотели применить только к настольным компьютерам и исключить ноутбуки. Для таких целей есть WMI фильтры, с которыми мы уже знакомились.

В чем преимущество WMI перед фильтрацией по группе

Наверняка у вас может возникнуть вопрос, почему нельзя использовать в фильтре безопасности групповой политики группу безопасности и уже в нее добавлять нужные нам объекты. Все верно можно, но тогда у вас появляется дополнительная работа по постоянному добавлению новых устройств в данную группу безопасности. А вот если вы будите фильтровать группу «Прошедшие проверку (Authenticated Users)» через WMI, то вся ручная работа просто испаряется, так как все компьютеры по умолчанию входят в группу «Прошедшие проверку».

Фильтрация WMI для оборудования

Именно здесь мы можем использовать магию фильтров WMI, чтобы автоматизировать задачу определения типа рабочей станции на основе свойств WMI. Фильтровать оборудование можно по многим критериям:

  • Имен устройства- применимо если у вас есть стандарт именования устройств
  • Форм фактор оперативной памяти
  • Наличие батареи на устройстве

Меня привлекают два последних критерия, так как DNS-имя компьютера могут задать и неправильно, нельзя исключать человеческий фактор, а вот критерии оборудования уже сложно обмануть. Давайте создадим наш с вами WMI фильтр. Для этого откройте оснастку gpmc.msc (Управление групповой политикой). Перейдите в раздел «Фильтры WMI», щелкните по нему правым кликом и выберите пункт «Создать».

У вас откроется окно «Новый фильтр WMI», задаем ему имя и описание. После чего нам нужно добавить условия запроса.

Первым запросом мы будем искать все устройства на которых ФормФактор памяти равен 12.

Что такое FormFactor оперативной памяти вы можете почитать по ссылке (https://ru.wikipedia.org/wiki/DIMM). Напоминаю, что в ноутбуках установлена ОЗУ SO-DIMM с формфактором 12. Посмотреть формфактор можно из командной строки:

А вот запрос для выборки, только по ноутбукам:

Цифра 12 будет означать, что перед вами тип памяти SODIM, если 8, то обычная DIMM на обычном стационарном компьютере.

Сохраняем наш запрос. Нажимаем еще раз кнопку «Добавить» и добавляем еще вот такой запрос, который будет проверять наличие на устройстве батареи:

В приведенном выше запросе мы выбираем BatteryStatus из Win32_Battery. Если BatteryStatus не равен (<>) 0, запрос вернет значение TRUE. В итоге у меня два запроса WMI идут в фильтре, друг за другом.

Выберите объект групповой политики, для которого предназначен этот фильтр WMI.

Для этого в самом низу в пункте «Объект GPO связан со следующим фильтром WMI» и из всплывающего списка выберите созданный ранее фильтр.

На вопрос про изменение фильтра WMI нажмите «Да».

Читайте также:  Windows 10 installation options

В итоге мы применили к групповой политике наш фильтр с определенными параметрами. Осталось его протестировать, как проверять применение WMI фильтра я рассказывал, советую ознакомиться, там было несколько методов.

Но бегло можно на ноутбуке запустить утилиту Gpresult /SCOPE COMPUTER /Z, и вы увидите, что либо был отказ применения политики из-за WMI фильтра или нет.

Wmi фильтр для windows

Добрый день! Уважаемые читатели и гости одного из крупнейших IT блогов по системному администрированию Pyatilistnik.org. В прошлый раз мы с вами научились отключать защитник Windows 8.1, у каждого была своя причина произвести данное действие. Сегодня я хочу вас научить очень полезной вещи, без которой системный администратор управляющий групповой политикой не сможет активно и гибко ее применять. И речь пойдет про применение фильтров на разных этапах применения групповой политики к компьютерам и пользователям.

Для чего нужен механизм фильтрации GPO

Какую бы вы сложную иерархию Active Directory не создавали у вас рано или поздно появится ситуация, что вам нужно для двух и более объектов находящихся в одном OU иметь разные настройки, а для кого-то вообще запретить применение определенной групповой политики, но перемещать объект нельзя, так как в текущей иерархии он получает все настройки по корпоративному стандарту, и усложнять структуру не представляется возможным.

Лично я стараюсь не создавать лишних организационных подразделений, так как, чем проще система, тем проще ею управлять. У вас может быть вообще одна OU и все навалено в ней, но это вам не мешает грамотно применять политики к конкретным объектам, благодаря фильтрации на разных этапах GPO.

Виды фильтрации групповых политик

  1. Это фильтр безопасности
  2. Это фильтр WMI
  3. Это фильтр на вкладке делегирование
  4. Это фильтр на вкладке сведения

Фильтр безопасности GPO

Данный метод метод ограничения применений групповой политикой самый очевидный и используемый. Тут логика простая, что если вы хотите применить групповую политику, только к определенным объектам:

  • Пользователям
  • Компьютерам
  • Группам

то вы можете их добавить в данный фильтр, после чего нужно удалить группу «Прошедшие проверку (authentication user)«, так как в нее входят все пользователи и компьютеры домена. Давайте это попробуем. Открываем оснастку «Управление групповой политикой». В прошлый раз я создавал политику «Настройка MaxTokenSize» в задачи которой входило изменение размера токена kerberos. Предположим, что я хочу применить ее только в локальной доменной группе MaxTokenSize. Для этого я нажимаю кнопку «Добавить» в области «Фильтры безопасности«, находим ее и нажимаем «Ok».

Теперь нам необходимо удалить группу по умолчанию «Прошедшие проверку«, напоминаю, что в нее входят все компьютеры и пользователи домена.

В итоге мы видим в фильтрах безопасности одну нашу группу. Пробуем зайти на компьютер, где она должна отработать.

В начале 2016 года я столкнулся с тем, что моя политика не отработала, хотя все фильтры безопасности были настроены правильно. Открыв вывод команды gpresult/ r, я обнаружил статус (Unknown reason).

Начав разбираться, все пришло к тому, что новые обновления Microsoft (KB3159398, KB3163017, KB3163018) закрывал одну нехорошую вещь, которая длилась с 2000 года. Проблема заключалась в том, что злоумышленник мог применять атаку «Человек посередине (Man in the Middle)», тем самым делать подмену ответа от контроллера домена на целевом компьютере, это выливалось в то, что он подделывал политику безопасности, которая давала ему права локального администратора для скомпрометированной учетной записи.

Microsoft долго билась с этой проблемой и пришла к решению поменять порядок считывания политики, теперь это могут делать только компьютеры домена. Раньше политики пользователя считывал пользователь, политики компьютера, компьютер. Установив KB3163622 теперь для считывания GPO используется только компьютер и если он не входит в фильтр безопасности политики, то она не применится (Подробнее можете посмотреть вот тут https://support.microsoft.com/en-us/help/3163622/ms16-072-security-update-for-group-policy-june-14-2016).

Исходя из данной ситуации, чтобы политики успешно применялись Microsoft предложило добавлять одну из групп безопасности в ACL политики «Прошедшие проверку» или «Все компьютеры». Переходим к ACL.

Читайте также:  Kms auto windows 10 pro 64 bit rus

Фильтрация GPO через ACL (Запрет GPO)

И так фильтрацию в фильтре мы сделали, чтобы политика применилась нам необходимо выбрать политику и перейти на вкладку «Делегирование». Тут нам необходимо добавить одну из двух групп «Прошедшие проверку (Authenticated Users)» или «Все компьютеры (Domain Computers)«. Я добавляю первую. Нажимаем кнопку «Добавить» и находим нашу группу.

Уровень прав оставляем «Чтение», этого будет достаточно.

Пробуем проверить применение нашей политики. В качестве испытуемого у меня идет виртуальная машина с Windows 10. После загрузки, я открываю командную строку и смотрю применение политики, для этого пишем команду:

В итоге я вижу, что среди примененных объектов групповой политики, моя «Настройка MaxTokenSize» в списке присутствует.

Если бы пользователь не был членом группы, которая фигурирует с фильтре безопасности, то мы видели бы вот такую картину, что следующие политики GPO не были применены, так как они отфильтрованы по причине отказано (Безопасность). Как видим нет прав на чтение.

Еще вкладку «Делегирования» используют и для запрещения, простой пример вы сделали политику которая для всех пользователей домена применяет корпоративные обои на рабочий стол. Допустим, что вам для администраторов домена или для круга избранных нужно сделать так, чтобы к ним не применялась политика. Вы создаете группу и уже ей запрещаете чтение данной политики, хоть пользователи и будут по прежнему входить в группу «Прошедшие проверку», но прочитать они ее не смогут так как явный запрет для другой группы куда они входят, гораздо сильнее и приоритетнее чем права чтения.

Добавляем группу для которой хотим запретить применение политики, у меня это Forbidden MaxTokenSize.

Далее даем права «Чтение».

Далее нажимаем кнопку «Дополнительно«, у вас откроется окно параметром безопасности. Тут вы выбираете нужную вам группу, для которой вы хотите запретить применение групповой политики и ставите галку «Запретить«. В таком случае данная группа будет получать при попытке считать GPO «Отказано (безопасность)».

Фильтрация GPO по WMI

Еще одним действенным методом фильтровать получателей групповой политики, это использование WMI фильтров. Мы с вами их уже применяли, когда нужно было применить политику только к ноутбукам.

Простой пример вы создали политику и хотели бы ее применить скажем только на компьютеры у кого установлена операционная система Windows 7. Для нашей задачи нам необходимо создать WMI фильтр, для этого перейдем в «Фильтры WMI«, где выбираем соответствующий пункт.

Задаем имя WMI фильтра, после чего нажимаем кнопку «Добавить». Откроется окно для составления запроса. Конструкция для Windows 7 будет такая:

Номера для Win32_OperatingSystem

  • Windows Server 2019\Windows 10 1809 — 10.0.17763
  • Window Server 2016\Windows 10 — 10.0
  • Window Server 2012 R2\Windows 8.1 — 6.3
  • Window Server 2012\Windows 8 — 6.2
  • Window Server 2008 R2\Windows 7 — 6.1

Тип продукта отвечает за назначение компьютера и может иметь 3 значения:

  • 1 — рабочая станция;
  • 2 — контроллер домена;
  • 3 — сервер.

Вот вам пример вывода в PowerShell команды показывающей версию операционной системы:

Сохраняем наш WMI запрос.

Если хотите перед внедрение проверить будет ли применена групповая политика к нужному объекту, то можете провести тестирование в WMI Filter Validation Utility. Если все настроено корректно, но политика не применяется, почитайте по ссылке возможные варианты. Далее берем вашу политику и применяем к ней WMI.

Теперь если компьютер не соответствует критериям WMI фильтра, то вы увидите в gpresult /r /scope:computer вот такую запись (Отказано фильтр WMI)

Фильтрация через состояние GPO

Еще на вкладке «Сведения» есть такая настройка, как состояние GPO. Она необходима для ускорения обработки политики, путем отключения лишних веток. Например у вас политика исключительно на пользователя и вам смысла нет, чтобы компьютер при загрузке пытался прочитать настройки для компьютера, тратя на это время. В таких случаях отключают данный функционал. Тут есть варианты:

  • Включено
  • Все параметры отключены
  • Параметры конфигурации компьютера отключены
  • Параметры конфигурации пользователя отключены
Оцените статью