Заметки о Windows и других программных продуктах Microsoft...

Применение групповых политик (часть 3)

Применение групповых политик (часть 3)

Обычно объекты групповой политики назначаются на контейнер (домен, сайт или OU) и применяются ко всем объектам в этом контейнере. При грамотно организованной структуре домена этого вполне достаточно, однако иногда требуется дополнительно ограничить применение политик определенной группой объектов. Для этого можно использовать два типа фильтров.

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

Фильтры безопасности позволяют ограничить применение политик определенной группой безопасности. Для примера возьмем GPO2, с помощью которого производится централизованная настройка меню Пуск на рабочих станциях с Windows 8.1\Windows 10. GPO2 назначен на OU Employees и применяется ко всем без исключения пользователям.

настройки объекта групповой политики

 

Теперь перейдем на вкладку «Scope», где в разделе «Security Filtering» указаны группы, к которым может быть применен данный GPO. По умолчанию здесь указывается группа Authenticated Users. Это означает, что политика может быть применена к любому пользователю или компьютеру, успешно прошедшему аутентификацию в домене.

фильтр безопасности для GPO по умолчанию

 

На самом деле каждый GPO имеет свой список доступа, который можно увидеть на вкладке «Delegation».

список разрешений для GPO

 

Для применения политики объект должен иметь права на ее чтение (Read) и применение (Apply group policy), которые и есть у группы Authenticated Users.  Соответственно для того, чтобы политика применялась не ко всем, а только к определенной группе, необходимо удалить из списка Authenticated Users, затем добавить нужную группу и выдать ей соответствующие права.

редактирование списка доступа GPO

 

Так в нашем примере политика может применяться только к группе Accounting.

фильтр безопасности для GPO после изменения

WMI фильтры

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

Get-WmiObject -List

Для примера возьмем класс Win32_OperatingSystem, который отвечает за свойства операционной системы. Предположим, что требуется отфильтровать все операционные системы кроме Windows 10. Заходим на компьютер с установленной Window 10, открываем консоль PowerShell и выводим имя, версию и тип операционной системы с помощью команды:

Get-WmiObject -Class Win32_OperatingSystem | fl Name, Version, ProductType

получение списка объектов WMI

 

Для фильтра используем версию и тип ОС. Версия одинакова для клиентских и серверных ОС и определяется так:

• 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
• Window Server 2008\Windows Vista — 6.0

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

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

Теперь переходим непосредственно к созданию фильтра. Для этого открываем оснастку «Group Policy Management» и переходим к разделу «WMI Filters». Кликаем на нем правой клавишей мыши и в контекстном меню выбираем пункт «New».

создание WMI фильтра

 

В открывшемся окне даем фильтру имя и описание. Затем жмем кнопку «Add» и поле «Query» вводим WQL запрос, который и является основой WMI фильтра. Нам необходимо отобрать ОС версии 10.0 с типом 1, соответственно запрос будет выглядеть так:

SELECT * FROM Win32_OperatingSystem WHERE Version LIKE ″10.0%″ AND ProductType = ″1″

Примечание. Windows Query Language (WQL) — язык запросов WMI. Подробнее о нем можно узнать на MSDN.

wql запрос для WMI фильтра

 

Сохраняем получившийся фильтр.

готовый WMI фильтр

 

Теперь осталось только назначить WMI фильтр на объект групповой политики, например на GPO3. Переходим к свойствам GPO, открываем вкладку «Scope» и в поле «WMI Filtering» выбираем из списка  нужный фильтр.

добавление WMI фильтра к GPO

Анализ применения групповых политик

При таком количестве способов фильтрации GPO необходимо иметь возможность диагностики и анализа их применения. Проще всего проверить действие групповых политик на компьютере можно с помощью утилиты командной строки gpresult.

Для примера зайдем на компьютер wks2, на котором установлена ОС Windows 7, и проверим, сработал ли WMI фильтр. Для этого открываем консоль cmd с правами администратора и выполняем команду gpresult /r, которая выводит суммарную информацию о групповых политиках, примененных к пользователю и  компьютеру.

Примечание. Утилита gpresult имеет множество настроек, посмотреть которые можно командой gpresult /?.

Как видно из полученных данных, к компьютеру не применилась политика GPO3, поскольку она была отфильтрована с помощью фильтра WMI.

получение списка политик на компьютере с помощью gpresult

 

Также проверить действие GPO можно из оснастки «Group Policy Management», с помощью специального мастера. Для запуска мастера кликаем правой клавишей мыши на разделе «Group Policy Results» и в открывшемся меню выбираем пункт «Group Policy Results Wizard».

запуск Group Policy Results Wizard

 

Указываем имя компьютера, для которого будет составлен отчет. Если требуется просмотреть только пользовательские настройки групповой политики, то настройки для компьютера можно не собирать. Для этого необходимо поставить галочку снизу (display user policy settings only).

выбор целевого компьютера

 

Затем выбираем имя пользователя, для которого будут собираться данные, либо можно указать не включать в отчет настройки групповой политики для пользователя (display computer policy settings only).

выбор пользователя

 

Проверяем выбранные настройки, жмем «Next» и ждем, пока собираются данные и генерируется отчет.

суммарная информация

 

Отчет содержит исчерпывающие данные об объектах групповых политик, примененных (или не примененных) к пользователю и компьютеру, а также об используемых фильтрах.

Для примера составим отчеты для двух разных пользователей и сравним их. Первым откроем отчет для пользователя Kirill и перейдем в раздел настроек пользователя. Как видите, к этому пользователю не применилась политика GPO2, поскольку у него нет прав на ее применение (Reason Denied — Inaсcessible).

отчет для пользователя Kirill

 

А теперь откроем отчет для пользователя Oleg. Этот пользователь является членом группы Accounting, поэтому к нему политика была успешно применена. Это означает, что фильтр безопасности успешно отработал.

отчет для пользователя oleg

 

На этом, пожалуй, я закончу ″увлекательное″ повествование о применении групповых политик. Надеюсь эта информация будет полезной и поможет вам в нелегком деле системного администрирования 🙂

 
 
Комментарии

Остается лишь добавить что пользоваться WMI фильтрами нужно очень осторожно иначе можно существенно увеличить время применения групповых политик. 😉 По мне так мне кажется что использовать WMI фильтры нужно тогда, когда другого способа очертить область применения нет.

Два и более WMI-фильтра в одной политике работают независимо от результатов друг друга.

Андрей

Доброго времени суток.

На Windows 2012

В домене сделал:
1)Создал подразделение
2)в подразделение добавил политику
3)в политике в делегировании сделал «прошедшим проверку» только чтение.

в фильтрах безопасности:
добавляю пользователя из AD — политика НЕ применяется.
добавляю компьютер из AD — политика ПРИМЕНЯЕТСЯ только на добавленном компьютере.
добавляю группу из AD — политика НЕ применяется.

Как сделать чтобы политика применялась на конкретную доменную группу пользователей ?

Что находится в подразделении?
На кого назначена политика — на пользователей или на компьютеры?

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

Насколько я помню, запрещающее правило имеет приоритет перед разрешающим, поэтому политика просто не применится ни к кому.

Да, верно, но ведет данное правило в этом конкретном примере не совсем предсказуемо. Или как вариант снять разрешение на выполнение с правила к данной категории.

Удаление группы «прошедшие проверку» — это стандартный способ фильтрации, рекомендуемый Microsoft. Зачем изобретать велосипед 🙂

Максим

Ну вот допустим, смотри, надо применить политику нескольким сотрудникам в одном организационном подразделение из 10 чел. По твоему варианту применяем политику для всех 15 человек.

Александр

Спасибо за статью, все понятно и доходчиво, но не понял как сделать запрещение выполнения политики на компьютере если пользователь входит в группу для которой она разрешена.
Просто у меня следующая ситуация, есть группа пользователей, один из них пользуется двумя компьютерами (разные здания), необходимо членам группы маппить сетевой диск, но на том компьютере который находится в другом здании этого диска не должно быть.
Я сделал как, выставил в фильтре безопасности (первая закладка, нижняя часть экрана) необходимую группу, в делегировании: «Прошедшим проверку» чтение политики, но отключил выполнение, группе пользователей — чтение и выполнение, компьютеру чтение, запрет на выполнение.
Но это не помогает, когда на компьютере сделал gpresult, то получил что сначала на уровне компьютера политика не выполняется, отклоняется из-за запрета, но потом выполняются политики для пользователя и там она выполняется, поэтому блокировка и не срабатывает. Можно ли как-то решить проблему?

Интересный случай. Можно попробовать замыкание политики в режиме слияния.

Александр

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

Замыкание во второй части описывал. Сложного ничего нет, как раз на такой случай.

Александр

Именно там и прочитал, в описании действительно звучит подходяще. В свойствах нужной политики включили «Режим обработки замыкания пользовательской групповой политики», в параметрах выставил «Слияние», на сервере сделал «gpupdate /force», на компьютере гд надо чтобы не работало загрузился и выполнил тоже самое, чтобы ускорить загрузку измененной политики, но опять в gpresult:
«Конфигурация компьютера
————————
Следующие политики GPO не были приняты, поскольку они отфильтрованы
———————————————————————
***** Фильтрация: Отказано (безопасность)

Конфигурация пользователя
—————————
Примененные объекты групповой политики
—————————————
***** »
Т.е. опять почему-то срабатывает, хотя вроде не должно.

Александр

Я понял, вариант с замыканием для меня не подходит, т.к. у меня политика линкуется на весь домен, т.к. отдельные OU не создавались, то замыкание просто не срабатывает, т.к. политика отрабатывает сначала по компьютерам домена, а потом еще раз по пользователям. Соответственно что она заработала необходимо компьютеры этого отдела, без компьютера который в другом здании выносить в отдельны OU.
Поэтому кроме WIM фильтра решения не вижу.

Если не секрет — почему нельзя создать отдельные OU? Это здорово упрощает жизнь, и WMI фильтры не потребуются.

Александр

На данный момент в домене создан только один OU куда переносятся отключенные аккаунты пользователей, который были уволены или ушли в декретный отпуск. Другие не заводились, т.к. до этого не было в этом необходимости, плюс компьютеры названы по фамилии пользователя за которым он закреплен, а из-за довольно большой текучки сотрудников, названия довольно часто меняются. Соответственно довольно часто, после смены названия, пришлось бы перетаскивать компьютеры и сотрудников в структуре AD.
WMI фильтры редко, сейчас только три. Один из-за вопроса который возник выше, и еще два используются, для разделения компьютеров на те у которых установлены операционные системы Windows 8, 8.1 и остальные. Последние два требуются для обновления компьютеров через WSUS, т.к. в Windows 8 убрали возможность установки обновлений при выключении компьютеров.

Виктор

Выпадает такая ошибка когда пробую сделать фильтр
Указанное пространство имен не является допустимым пространством имен на локальном компьютере или же у вас отсутствует доступ к пространству имен на этом компьютере. Данное пространство имен допустимо на удаленном компьютере. Для подтверждения использования этого пространства имен нажмите «ОК». Для выбора других пространств имен нажмите «Отмена».

добавил группу пользователей(wmimgmt.msc) все равно не дает сохранить фильтр

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

Уважаемый, не хамите! Англоязычная версия Windows является стандартом на проодакшене, так как с русскоязычной могут быть проблемы

Абсолютно верно. Особенно это касается серверных ОС.

Кирилл, спасибо за сайт и материалы.
Уже лет, наверно, 8 черпаю с него нужную информацию и рекомендую, как источник полезной информации, коллегам.
Вопрос про проверку wmi.
Я проверял wmi-запрос через «gwmi -q». Запрос отрабатывает корректно, но при применении политик возникает ошибка применения по причине wmi фильтра.
Как посмотреть, что ему не понравилось?

select * from Win32_ComputerSystem where NOT (Name=»PC1″ or Name=»PC2″ or Name=»THISPC» or Name=»THATPC»)

Всё работает. Дело было в том, что я вижу в отклонённых политиках причину «Неправильный фильтр WMI».
Фильтр правильный, и политика правильно была отклонена, потому что сработал фильтр.
Проще говоря: сам тупанул.

Ответить