Я создаю групповую политику для применения к подмножеству пользователей в моей организации. У этого подмножества пользователей нет домашнего каталога, установленного в их объекте Active Directory, тогда как другим пользователям назначен диск I: \.
Мне нужно найти WMI-запрос, который позволит применить GPO конфигурации пользователя к пользователю без диска 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.
Я решил, что сделать это точно так, как я определил в своем вопросе, на самом деле невозможно.
Два лучших варианта, с которыми я столкнулся:
Я выбрал вариант №2 в своей среде.