Применение WMI фильтров в GPO

Posted by

Создаем WMI фильтра для разграничения применения групповой политики в доменеВ виду того, что подконтрольная сеть имеет несколько офисов и в каждом из них для разграничения доступ во всемирную сеть интернет и для локальных интернет ресурсов используется связка SQUID + HTTPS, то чтобы если сотрудник из одного офиса приедет в другой офис с ним не переехала политика нужно как-то разграничить применение групповых политик. А как это сделать? Чем можно управлять? Что отличает офис от другого офиса? В моем случае это сетевая адресация офисов, а имея сей факт отличия мне нужен инструмент чтобы этим воспользоваться. Когда я еще работал в одной крупной компании и был Windows администратором, то такую задачу как распространение политик на определенные Windows системы я решал с применением WMI-фильтров. Они эти WMI-фильтры имеют место быть добавлены в каждую существующую или создаваемую групповую политику. А раз так, то их и задействую в своей задаче, а заодно и заметку составлю, но сперва нужно пояснить, что есть WMI.

WMI (Windows Management Interface) — это технология посредством которой создаются запросы к подсистеме Windows на основании которых идет сравнение на удовлетворение заданному условию. К примеру нужно чтобы политика применялась только к рабочим станциям с осью Windows 7 x86, а для всех других систем политика будет не применима, т. к. не выполняется условие применения. Грубо говоря это фильтр. А WMI (WMI Query Language) строиться на запросах, как я для себя это называют.

К примеру чтобы вывести локально список всех сервисов и экспортировать вывод в формат HTML:

C:\Windows\system32>wmic /output:"c:\service.html" service list full /format:htable

Полная информация по всем службам компьютераПо такому же принципу строятся WMI запросы и для Group Policy Management.

Чтобы создать WMI фильтр (на домен контроллере srv-dc) на Enterprise SP1 (English) нужно сделать следующее:

Start — Control Panel — Administrative Tools — Group Policy Management, раскрываем свернутые элементы до: Group Policy Management — Forest: polygon.local — Domains — nemdomb.local — и через правый клик мышью вызываем элемент New…, далее составляем свой собственный фильтр на основе которого будет производиться дополнительная проверка перед применением групповой политики:

Name: _IP_Subnet_Office

Description: IP Subnet Office

Нажимаю Add в настройке Queries:

Namespace: root\CIMv2

Query: Select * From Win32_IP4RouteTable Where (Mask = '255.255.255.255' AND (Destination Like '10.7.8.%' OR Destination Like '10.7.9.%'))

Т.е. если под действие фильтра попадают рабочие станции из диапазона подсети 10.7.8.0/23, то к ним будет применяться групповая политика.

Нажимаю OK, Save (если ошибка в синтаксисе то мастер не даст сохранить добавленное сообщением «A syntax error occurred trying to evaluate a query string»).

Что теперь, а теперь когда создаю определенную групповую политику, давайте я пройдусь по шагам чтобы было более наглядно. Вот политика GPO_Drive_Map (будет добавлять на рабочий стол ярлык сетевого ресурса), создаю ее в оснастке Group Policy Management в текущем домене polygon.local через правый клик по нему вызываю элемент меню: Create a GPO in this domain, and Link it here

Name: GPO_Drive_Map

Source Starter GPO: (none)

и нажимаю OK, затем переключаюсь на неё. По умолчанию групповая политика нацелена на:

Location: polygon.local

Security Filtering: (Name) Прошедшие проверку

и вот если обратить свой взгляд чуть ниже Вы увидите что есть настройка WMI Filtering, по умолчанию он не настроен, т. к. выставлено значение (none), нажимаем на значок стрелочки вниз и выбираем созданный WMI фильтр проверяющий что станция в этой политике соответствует условию:

Применяю к GPO политике созданный WMI фильтрКак только было произведено изменение WMI Filtering мастер уведомит: «Would you like to change the WMI filter to GPO_IP_Subnet_Office» отвечаю что Yes.

Т.е. у меня политика на изменение стартовой страницы то в настройке Security Filtering убираю «Прошедшие проверку» и добавляю пользователя, к примеру учетная запись alexander.ollo

Теперь собственно сама настройка добавления ярлыка на рабочий стол:

GPO_Drive_Map и через правый клик мышью вызываю элемент меню Edit… — User Configuration — Preferences — Windows Settings — Shortcuts, через правый клик мышью элемент меню New — Shortcut

Action: Update

Name: MikrotikBackup

Target type: File System Object

Location: Desktop

Target path: \\srv-backup\MikrotikBackup

После нажимаю Apply & OK, потом закрываю оснастку редактирования Group Policy Management Editor.

Итого все сделано, осталось проверить работу данной политики. С рабочей станции под управлением Windows 7 Pro SP1 подключаюсь к любому серверу/рабочей станции да и даже авторизуюсь на компьютере в пределах текущего офиса и как результат на рабочем столе появляется ярлык на ресурс с учетом заложенного функционала групповой политике.

Система где политика применилась:

C:\Users\alexander.ollo>hostname

W7X86

C:\Users\alexander.ollo>gpresult /r

Конфигурация пользователя

--------------------------

CN=alexander.ollo,OU=IT,DC=polygon,DC=local

Примененные объекты групповой политики

---------------------------------------

Default Domain Policy

GPO_Drive_Map

Система где политика не применилась:

C:\Users\alexander.ollo>hostname

SRV-Office2

C:\Users\alexander.ollo>gpresult /r

USER SETTINGS

--------------

CN=alexander.ollo,OU=IT,DC=polygon,DC=local

The following GPOs were not applied because they were filtered out

GPO_Drive_Map <- групповая политика отфильтрована и не применяется к другому офису, т.к. IP адрес в другом офисе не попадает под фильтр WMI

Filtering: Denied (WMI Filter)

WMI Filter: GPO_IP_Subnet_Office

Как видно по результатам вывода и политика успешно работает. Да и наглядно то же. Итого я вспомнил про использование WMI запросов которые можно использовать для решения задач на текущем месте работы. Оформил себе наглядную заметку на будущее. Да и поставленную задачу выполнил в полной мере и могу прощаться, с уважением автор блога Олло Александр aka ekzorchik.