В виду того, что подконтрольная сеть имеет несколько офисов и в каждом из них для разграничения доступ во всемирную сеть интернет и для локальных интернет ресурсов используется связка SQUID + HTTPS, то чтобы если сотрудник из одного офиса приедет в другой офис с ним не переехала политика нужно как-то разграничить применение групповых политик. А как это сделать? Чем можно управлять? Что отличает офис от другого офиса? В моем случае это сетевая адресация офисов, а имея сей факт отличия мне нужен инструмент чтобы этим воспользоваться. Когда я еще работал в одной крупной компании и был Windows администратором, то такую задачу как распространение политик на определенные Windows системы я решал с применением WMI-фильтров. Они эти WMI-фильтры имеют место быть добавлены в каждую существующую или создаваемую групповую политику. А раз так, то их и задействую в своей задаче, а заодно и заметку составлю, но сперва нужно пояснить, что есть WMI.
WMI (Windows Management Interface) — это технология посредством которой создаются запросы к подсистеме Windows на основании которых идет сравнение на удовлетворение заданному условию. К примеру нужно чтобы политика применялась только к рабочим станциям с осью Windows 7 x86, а для всех других систем политика будет не применима, т. к. не выполняется условие применения. Грубо говоря это фильтр. А WMI (WMI Query Language) строиться на wmic запросах, как я для себя это называют.
К примеру чтобы вывести локально список всех сервисов и экспортировать вывод в формат HTML:
C:\Windows\system32>wmic /output:"c:\service.html" service list full /format:htable
По такому же принципу строятся WMI запросы и для Group Policy Management.
Чтобы создать WMI фильтр (на домен контроллере srv-dc) на Server 2008 R2 Enterprise SP1 (English) нужно сделать следующее:
Start — Control Panel — Administrative Tools — Group Policy Management, раскрываем свернутые элементы до: Group Policy Management — Forest: polygon.local — Domains — nemdomb.local — WMI Filter и через правый клик мышью вызываем элемент New…, далее составляем свой собственный фильтр на основе которого будет производиться дополнительная проверка перед применением групповой политики:
Name: GPO_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 фильтр проверяющий что станция в этой политике соответствует условию:
Как только было произведено изменение 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.