WMI-запрос для обнаружения отсутствия буквы диска для групповой политики

Я создаю групповую политику для применения к подгруппе пользователей в моей организации. Для этого подмножества пользователей домашний каталог не установлен в объекте Active Directory, в то время как другим пользователям назначен диск I:\.

Мне нужно найти WMI-запрос, который позволит применить GPO User Configuration для пользователя без диска I:\.

Я легко могу найти обратное этому:

Select * From Win32_LogicalDisk Where DeviceID = 'I:'

Но если я сделаю этот WHERE DeviceID <> 'I:\', он вернет C:, D: и другие подключенные диски.

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

select RoamingPath from Win32_UserProfile where RoamingPath <> '\\*'

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

Я читал, что можно напрямую запросить AD, но приведенная ниже команда выдает ошибку "Недопустимый класс", и я не знаю, будет ли это применяться к вошедшему в систему пользователю:

select * from ds_user where ADSIPath = LDAP://OU=CA,DC=global,DC=opus AND DS_homeDirectory=’*’

Я думаю, что в идеале это можно решить, используя Win32_LogicalDisk для подсчета общего количества дисков, второй запрос, чтобы получить счетчик I:\ дисков (1 или 0), а затем вычесть второй результат из первого. Если результат = первый запрос, у меня есть набор пользователей. Тем не менее, пока не повезло найти синтаксис для этого в фильтре wmi GPO.

1 ответ

Решение

Я решил, что сделать это именно так, как я определил в моем вопросе, не представляется возможным.

Два лучших варианта, с которыми я столкнулся:

  1. Инвертированные фильтры WMI - создают переменную среды для каждого пользователя / ПК, которая выдает результат на основе требуемой логики. Затем используйте обычный запрос WMI для фильтрации по этой переменной среды.
  2. Запланированный запрос PowerShell - как предложил Yanick в комментариях, создайте запрос PowerShell, который фильтрует пользователей на основе необходимой логики (т. Е. Атрибут homeDrive пуст), а затем добавляет эти учетные записи пользователей в группу, которую затем можно использовать для фильтрации безопасности в объекте групповой политики., Этот PowerShell затем планируется на сервере локальной сети для повторного запуска.

Я выбрал вариант № 2 в моем окружении.

Другие вопросы по тегам