Сохраненные запросы (Saved Queries) в консоли Active Directory Users and Computers (ADUC) позволяют создавать простые и сложные LDAP запросы по выборке объектов Active Directory. Эти запросы можно сохранять, редактировать и переносить между компьютерами. С помощью сохраненных запросов можно быстро и эффективно решать задачи поиска и выборки объектов в AD по различным критериям. Saved Queries, например, помогут быстро: вывести список всех отключенных учетных записей в домене, выбрать всех пользователей определенной организации с ящиками на заданном сервере Exchange и т.п.
Важное преимущество сохраненных LDAP запросов — предоставление возможности выполнять групповые операции с объектами из разных OU (контейнеров) Active Directory, например массовая блокировка/разблокировка, перемещение, удаление учетных записей и т.п. Т.е. позволяют «избавиться» от недостатков иерархической структуры OU в Active Directory, собрав все нужные объекты в плоском табличном виде.
Большинство указанных операций можно выполнить с помощью PowerShell, dsquery, скриптов vbs и т.д., но, как правило, представление результатов в привычном графическом виде консоли намного удобнее и не требует особых навыков.
Active Directory Saved Queries впервые появились в Windows Server 2003 и продолжают поддерживаться во всех последующих версиях Windows Server
Покажем типовой пример использования сохраненных запросов в консоли Active Directory Users and Computers. Предположим, нам нужно вывести список активных учетных записей пользователей, наименование их отделов и адресов email.
Открываем консоль ADUC (dsa.msc), выбираем раздел Saved Queries, щелкнув по нему ПКМ выбираем New – > Query.
В поле Name указываем имя сохраненного запроса, которое будет отображаться в консоли ADUC.
В поле Query root можно указать контейнер (OU), в котором выполняется запрос. По умолчанию поиск по критериям запроса выполняется по всему домену AD. В нашем примере, мы сузим область поиска, выбрав контейнер Ekaterinburg.
Далее нажимаем кнопку Define Query, и в выпадающем списке Find выбираем пункт Custom Search.
Переходим на вкладку Advanced и в поле Enter LDAP query копируем следующий LDAP-запрос:
(&(objectcategory=person)(object >
Сохраняем изменения, нажав OK.
Выбираем в консоли ADUC созданный запрос, нажимаем F5 для перестроения списка. Результат работы запроса виден на скриншоте.
Чтобы отобразить дополнительные поля (email-адрес, отдел), в консоли ADUC открываем меню View и выбираем пункт Add/Remove Columns.
Добавляем нужные поля.
Мы добавили 3 дополнительных поля: User Logon Name, E-Mail Address, Department.
Полученный результат можно выгрузить в CSV или TXT формате для дальнейшего анализа и использования в табличном реакторе Excel. Для этого щелкаем ПКМ по сохраненному запросу и выбираем пункт меню Export List.
В консоли ADUC можно создать множество различных сохраненных запросов, которые можно организовать в древовидную структуру.
Сохраненные запросы хранятся локально в консоли на компьютере, на котором они были созданы (xml-файл с настройками находится здесь C:Users\%USERNAME%AppDataRoamingMicrosoftMMCDSA) . Для переноса сохраненного запроса между компьютерами, в консоли dsa.msc есть функция Импорта / Экспорта запросов через XML файлы.
В следующей табличке мы приведем примеры часто используемых LDAP запросов для выборки в Active Directory.
Администратору домена Active Directory часто приходиться иметь дело с различными запросами, например, необходимо найти все отключенные учетные записи компьютеров или всех сотрудников какого-то департамента, или все глобальные группы. Некоторые администраторы сразу думают о каких-то скриптах на Powershell или VBS, забывая при этом, что все это можно сделать прямо в оснастке Active Directory Users and Computers (ADUC) с помощью запросов LDAP, которые к тому же можно удобно там же в консоли и сохранить, а при необходимости еще и выгрузить в файл XML и перенести на другой компьютер. Напомню, что такое LDAP — это сокращение от Lightweight Directory Access Protocol , то есть это облегченный протокол доступа к каталогу. Подробней узнать о нем можно, например, в википедии . Советую обратить особое внимание на синтаксис и логические операторы.
Сохраненные запросы LDAP (Saved Queries) впервые появились еще в Windows 2003 и продолжают оставаться и в текущих версиях Windows. Основное их преимущество в том, что для их использования не требуется программирования, все работа происходит во всем хорошо знакомой консоли Active Directory Users and Computers. С результатом запроса можно производить массовые операции типичные для ADUC, например, перенос, удаление, отключение, добавление в группы и так далее. Возможно формировать как простые запросы, используя типовые настройки, так и сложные с помощью редактора на вкладке «Advanced», тем самым достигается гибкость без использования сложных скриптов.
Использование сохраненных запросов LDAP (Saved Queries) в оснастке Active Directory Users and Computers
Чтобы воспользоваться запросами, запустите оснастку (snap-in) Active Directory Users and Computers.
Работа с LDAP запросами по группам Active Directory
Допустим, что вам нужно найти все пустые группы в домене или каком-то OU (organizational unit). Создайте новую папку, например, «Запросы по группам». В ней вы будете хранить все ваши новые запросы по группам.
Функционал сохранённых запросов (Saved Queries) в оснастке MMC Active Directory Users and Computers (ADUC) до сих пор остаётся полезным и актуальным, даже несмотря на появление PowerShell и соответствующего модуля для Active Direcotory. LDAP запросы позволяют вывести объекты в едином представлении невзирая на иерархию OU в домене. Полученный результат можно экспортировать в текстовые файлы с разделителями, либо выполнить групповые операции над найденными объектами. Также функционал сохранённых запросов полезен в тех случаях, когда необходимо обеспечить неквалифицированный персонал средством поиска в Active Directory по заранее настроенным запросам. В этой статье я создам небольшой список-обзор запросов, которыми пользуюсь сам и, которые, я думаю, будут полезны всем.
Создание сохранённого запроса
Напомню, если кто забыл/не знал, как создать свой поисковый запрос. В оснастке ADUC открываем раздел Saved Queries (сохранённые запросы):
Далее можно воспользоваться мастером и сконструировать запрос, либо создать запрос, используя язык запросов LDAP. Я буду использовать язык запросов. Каждый пример из этой статьи можно создать таким образом:
Примеры запросов
- Поиск административных учётных записей по атрибуту adminCount. Если пользователь является членом защищенной группы (например, Domain Admins, Enterprise Admins и т.п.), ему назначаются ACL, установленные в объекте AdminSDHolder в AD, а атрибуту adminCount пользователя присваивается значение 1.
При удалении пользователя из привилегированной группы процесс AdminSDHolder не возвращает атрибут adminCount к прежнему значению, т.е. в результаты запроса попадут и те учётные записи, которые, когда-либо входили в одну из защищённых групп.
Или более эффективный вариант:
PwdLastSet для определённой даты можно получить с помощью PowerShell:
Подробнее о атрибуте Pwd-Last-Set см. здесь.
objectCategory можно использовать любой, например group, computer, contact и др.
Servername — имя сервера печати, на котором установлен и опубликован в Active Directory принтер.