Медленное применение WMI фильтров в GPO: оптимизация и исправление
Симптомы медленной обработки WMI-фильтров
При входе пользователя или загрузке компьютера применение групповых политик занимает от 2 до 10 минут. В журнале Group Policy > Operational фиксируется предупреждение Event ID 5314 или Event ID 5016 с указанием длительного времени вычисления WMI-фильтра (WMI Filter Evaluation).
| Симптом | Где наблюдается | Причина |
|---|---|---|
| Экран применения параметров висит минутами | Клиентские станции | Тяжелые запросы к Win32_Product / Win32_Directory |
| Высокая загрузка CPU процессом WmiPrvSE.exe | Диспетчер задач | WMI выполняет полный перебор реестра или файловой системы |
| Таймаут применения политики | gpresult /h report.html | Фильтр WMI возвращает ошибку по таймауту |
Пошаговая оптимизация и исправление WMI-фильтров
- Никогда не используйте класс Win32_Product в WMI-фильтрах: опрос этого класса запускает процедуру самовосстановления Windows Installer (MSI) для каждого установленного пакета в системе, что вызывает колоссальные задержки. Замените его на чтение реестра.
- Оптимизируйте определение версии операционной системы: используйте точные условия по номеру билда вместо длинных строковых сравнений:
SELECT Version, ProductType FROM Win32_OperatingSystem WHERE Version LIKE "10.0.19045%" AND ProductType = "1" - Проверьте скорость выполнения WQL-запроса на клиенте:
Measure-Command { Get-CimInstance -Query "SELECT Version, ProductType FROM Win32_OperatingSystem WHERE Version LIKE '10.0%'" } - Восстановите поврежденный репозиторий WMI на клиенте при сбоях:
winmgmt /verifyrepository; winmgmt /salvagerepository
Золотое правило GPO: Назначайте не более одного WMI-фильтра на объект политики и избегайте фильтрации через WMI там, где можно применить фильтрацию безопасности (Security Filtering) по группам Active Directory.
Частые вопросы (FAQ)
Почему класс Win32_Product так сильно замедляет работу?
Обращение к Win32_Product вызывает событие MSIInstaller Event 1035 и запускает валидацию каждого установленного в системе MSI-пакета, что может занимать до 60 секунд на опрос.
Как заменить опрос Win32_Product на быстрый аналог?
Используйте нацеливание на уровне элементов (Item-Level Targeting) в Group Policy Preferences с проверкой ключа реестра HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall.
Как посмотреть время обработки каждого фильтра в отчете GPO?
Сгенерируйте отчет командой gpresult /h report.html и откройте раздел 'Сведения о фильтрах WMI'.
Где физически хранятся WMI-фильтры в домене Active Directory?
Они хранятся в контейнере CN=SOM,CN=WMIPolicy,CN=System,DC=домен,DC=local.