Ad explorer найти пользователя по имени

Обновлено: 06.07.2024

Всё о PowerShell в Windows и на Linux. Системное администрирование Windows

Get-ADUser — это один из базовых командлетов PowerShell, который можно использовать для получения информации о пользователях домена Active Directory и их свойствах. Вы можете использовать Get-ADUser, чтобы просмотреть значение любого атрибута объекта пользователя AD, отобразить список пользователей в домене с необходимыми атрибутами и экспортировать их в CSV, а также использовать различные критерии и фильтры для выбора пользователей домена.

Командлет Get-ADUser доступен начиная с PowerShell 2.0 и является частью специального модуля Active Directory для Windows PowerShell (представленного в Windows Server 2008 R2). Командлеты RSAT-AD-PowerShell позволяют выполнять различные операции с объектами AD.

Примечание. Раньше для получения информации об атрибутах учётных записей пользователей AD приходилось использовать различные инструменты: консоль ADUC (включая сохранённые запросы AD), сценарии vbs, dsquery и так далее. Все эти инструменты теперь легко заменить командлетом Get-ADUser.

Рассмотрим пример, в котором мы расскажем, как получить информацию о последнем изменении пароля пользователя и дате истечения срока действия пароля с помощью командлета Get-ADUser PowerShell.

Как найти пользователя AD и вывести список свойств с помощью Get-ADUser

Чтобы использовать командлет Get-ADUser необходимо установить Модуль Active Directory для Windows PowerShell, в каких системах он уже присутствует и как его установить если он ещё не установлен, смотрите в статье «Как установить и использовать модуль Active Directory PowerShell». На рабочих станциях данный модуль вы можете установить следующей командой:

Чтобы использовать командлет Get-ADUser, вам не нужно запускать его под учётной записью с администратором домена или с делегированными разрешениями. Любой авторизованный пользователь домена AD может запускать команды PowerShell для получения значений большинства атрибутов объекта AD (кроме конфиденциальных, например, связанных со сменой пароля). Если вам нужно запустить команду Get-ADUser из другой учётной записи, используйте параметр -Credential.

Чтобы отобразить список всех учётных записей домена, выполните эту команду:


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

Чтобы выполнить запрос AD на конкретном контроллере домена, используйте опцию -Server. Чтобы вывести информацию по определённому пользователю, укажите его имя после опции -Identity:


Чтобы изменить атрибуты пользователя, используйте командлет Set-ADUser.

По умолчанию командлет Get-ADUser возвращает только 10 основных атрибутов пользователя (из более чем 120 свойств учётной записи пользователя): DistinguishedName, SamAccountName, Name, SID, UserPrincipalName, ObjectClass, статус учётной записи (Enabled: True/False в соответствии с атрибутом UserAccountControl AD) и так далее. В этом случае вывод командлета не содержит информации о времени последней смены пароля пользователя.

Чтобы отобразить подробную информацию обо всех доступных пользовательских атрибутах, выполните эту команду:


Командлет Get-ADUser с опцией «-Properties *» отображает список всех пользовательских атрибутов AD и их значений.

Теперь мы перейдём к форматированию вывода Get-ADUser, чтобы отображались необходимые атрибуты пользователя. Вы можете отображать сразу несколько атрибутов пользователя:

  • PasswordExpired (Срок действия пароля истёк)
  • PasswordLastSet (Последний раз пароль установлен)
  • PasswordNeverExpires (Пароль никогда не истекает)
  • LastLogonTimestamp (Временная метка последнего входа)

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


Теперь в пользовательских данных есть информация о статусе учётной записи (Истёк ли срок действия пароля: True/False), дате последней смены пароля и времени последнего входа пользователя в домен. Чтобы отобразить эту информацию в более удобном табличном виде и удалить все ненужные атрибуты, используйте Select-Object -Property или Format-Table:


Get-ADUser: поиск в нескольких подразделениях с помощью SearchBase

Чтобы отображать пользователей только из определённого контейнера домена (организационного подразделения), используйте опцию -SearchBase:

Если вам нужно выбрать пользователей из нескольких подразделений одновременно, используйте следующий скрипт PowerShell:

Работа с email адресами пользователей в Active Directory с помощью PowerShell

Адрес электронной почты пользователя — это один из атрибутов объекта пользователя в Active Directory. Чтобы перечислить адреса электронной почты пользователей, необходимо добавить поле EmailAddress в значение опции -Properties командлета Get-ADUser.

Чтобы составить список активных учётных записей пользователей с адресами электронной почты выполните:

Чтобы получить список пользователей Active Directory без адреса электронной почты:

Следующий пример позволяет экспортировать адресную книгу электронной почты компании из AD в файл CSV, который впоследствии можно импортировать в почтовые клиенты, такие как Outlook или Mozilla Thunderbird:

Get-ADUser: экспорт пользователей AD в CSV/TXT

Полученный список пользователей домена с атрибутами можно экспортировать в текстовый файл:

Или вы можете экспортировать список пользователей AD в файл CSV (который позже будет удобно импортирован в Excel):

Использование Get-ADUser с фильтрацией по атрибутам

Используя опцию -Filter, вы можете фильтровать список учётных записей пользователей по одному или нескольким атрибутам. В качестве аргументов этого параметра можно указать значение определённых атрибутов пользователей Active Directory. Если вы используете параметр -Filter, командлет Get-ADUser будет перечислять только тех пользователей, которые соответствуют критериям фильтра.

Например, я хочу перечислить активные (Enabled) учётные записи пользователей, имя которых содержит «Dmitry» (в приведённом ниже примере используется несколько фильтров; вы можете комбинировать условия, используя стандартные логические операторы сравнения PowerShell):

Кроме того, вы можете отсортировать полученный список пользователей по определённому атрибуту пользователя (столбцу) с помощью командлета Sort-Object. Вы также можете использовать командлет Where-Object для одновременного указания нескольких критериев фильтрации.

Таким образом, вы можете составить таблицу с любыми необходимыми атрибутами пользователей Active Directory.

Примеры использования Get-ADUser

Давайте покажем ещё несколько полезных примеров команд для запросов пользователей Active Directory с помощью различных фильтров. Вы можете объединить их, чтобы получить необходимый список пользовательских объектов AD:

Отобразить пользователей AD, имя которых начинается с Joe:

Вы можете использовать PowerShell для расчёта общего количества учётных записей пользователей в Active Directory:

Вывод списка пользователей и их свойств, размещённых в определённом организационном подразделении (контейнере) в данном случае это OU=Finance,OU=UserAccounts,DC=FABRIKAM,DC=COM:

Найти отключённые учётные записи пользователей Active Directory:

Вы можете проверить дату создания учётной записи пользователя Active Directory с помощью команды:

Вы можете получить список недавно добавленных пользователей Active Directory, созданных за последние 24 часа:

Вывести список учётных записей с просроченным паролем (вы можете настроить параметры истечения срока действия пароля в политике паролей домена):

Командлеты Get-ADUser и Add-ADGroupMember можно использовать для создания динамических групп пользователей AD (в зависимости от города, должности, отдела и прочего).

Задача: для списка учётных записей, которые хранятся в текстовом файле (по одной учётной записи в строке), вам необходимо получить название компании пользователя из AD и сохранить его в файл CSV (вы можете легко импортировать этот файл в Excel).

Пользователи, которые не меняли свои пароли в течение последних 90 дней:

Чтобы получить фотографию пользователя из Active Directory и сохранить её в файле jpg, выполните следующие команды:

Чтобы получить список групп AD, членом которых является учётная запись пользователя:

Перечислить пользователей из OU, которые являются членами определённой группы безопасности домена:

Перечислить компьютеры домена, на которых пользователю разрешён вход.

Чтобы искать компьютеры и фильтровать компьютеры по их свойствам в Active Directory, вы можете использовать другой командлет – Get-ADComputer.

AdExplorer

Active Directory Explorer (AD Explorer) — продвинутая утилита для просмотра и редактирования Active Directory (AD). С помощью AD Explorer можно легко перемещаться по базе данных AD, выбирать избранные локации, просматривать свойства и атрибуты объектов без необходимости открывать диалоговые окна, изменять разрешения, просматривать схему объекта и выполнять сложные поисковые запросы, которые можно сохранять для дальнейшего использования.

Текущая версия Active Directory Explorer v1.50 от 4 ноября 2020 года. Автор: Марк Руссинович.

AD Explorer может сохранять снапшоты базы данных AD для автономного просмотра и сравнения. Снапшот можно просматривать, как если бы это была живая база данных. Если у вас есть два снимка базы данных AD, вы можете использовать функцию сравнения AD Explorer, чтобы увидеть различия в объектах, атрибуты и разрешения безопасности.

AD Explorer работает в Windows 2000 и выше.

Установка Ad Explorer

Установка как таковая не требуется. Просто распаковываем архив.

win

Запускаем утилиту. Какой-то из вариантов вам подойдёт.

win

При первом запуске принимаем лицензионной соглашение. Agree.

win

Указываем данные для подключения к AD. OK. Здесь же можно подключить имеющийся снапшот. Есть возможность сохранить текущее подключение.

Через меню File → Connect можно выполните несколько подключений, в том числе к снапшотам.

win

Оснастка и поиск объектов

Оснастка управления включает большое количество данных.

win

Слева древовидная структура AD, справа все атрибуты выбранного элемента. Очень удобно.

win

Для примера выделил единственного пользователя моего тестового домена. Вверху (и внизу) указан путь.

win

Поиск непростой. Вы можете указать целый набор критериев для поиска.

Снапшоты

Сделать снапшот можно в меню File → Create Snapshot.

win

Указываем описание и путь к файлу снапшота.

win

Примечательно, что можно снизить нагрузку на сервер, указав "Throttle maximum server utilization".

win

Удалю тестового пользователя и сделаю второй снапшот.

win

Загрузить снапшот можно в меню File → Connect.

win

Выбрав слева загруженный снапшот, можно его сравнить с другим. Compare → Compare Snapshot.

win

Теперь указываем снапшот для сравнения, выбираем сравниваемые объекты и атрибуты. Compare.

snapshot

Найдено четыре отличия, все связаны с моим удалённым пользователем и его правами.

win

Примечания

Создание снапшотов можно автоматизировать через командную строку. Требуется указать два параметра: строку соединения и путь к файлу снапшота. В примере соединение указано для текущего домена.

Сравнивать можно не только объекты, но и права доступа к ним.

Я расписал не все функции, пользуйтесь на здоровье. Вместе с утилитой лежит файл руководства, почитайте.

Ad Explorer не восстанавливает AD с помощью снапшотов.

date

11.11.2021

directory

Active Directory, PowerShell

comments

Комментариев пока нет

Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.

Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово « SQL ». Если открыть консоль поиска (Find User, Contacts, and Groups) в ADUC и выполнить обычный поиск по ключевому слову SQL , то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом sql не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).

поиск объектов в AD по ключевым словам

Вы можете быстро открыть окно поиска в AD с помощью команды %SystemRoot%\SYSTEM32\rundll32.exe dsquery,OpenQueryWindow .

Поиск пользователей и групп в Active Directory из консоли ADUC

Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers ( dsa.msc ) с помощью простых LDAP запросов.

  1. Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search;
  2. Переключитесь на вкладку Advanced;
  3. В поле LDAP query, введите: name=*sql*
Примечание. Данный LDAP запрос говорит, что вы хотите найти все объекты AD, содержащие в имени значение sql. Для этого нужно воспользоваться символом подстановки * с обеих сторон.

Если нужно искать только объекты AD типа группа, используйте такой запрос.

ldap запросы для поиска в Active Directory из консоли dsa.msc

Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).

Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.

фильтры поиск в Active Directory

С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.

Если вы используете для поиска консоль Active Directory Administrative Center ( dsac.exe ), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP. Введите запрос в поле LDAP query.

LDAP запросы в консоли Active Directory Administrative Center

Совет. В некоторых случаях для поиска объектов удобно использовать сохраненные LDAP запросы в консоли Active Directory.

Поиск компьютеров в Active Directory

Для поиска компьютеров и серверов в Active Directory по точному вхождению нужно в поле Find выбрать Computers и указать имя компьютера для поиска.

поиск по ключам в именах компьютеров AD

Если нужно найти компьютеры в AD по маске, нужно использовать такой LDAP запрос в разделе Custom Search -> Advanced.

Поиск групп, пользователей и компьютеров в Active Directory с помощью PowerShell

Также для поиска объектов в AD, можно воспользоваться модулем PowerShell для ActiveDirectory.

Для поиска в Active Directory определенного типа объекта можно использовать соответствующий командлет:

    – поиск групп – поиск пользователей – поиск компьютеров

Итак, сначала нужно импортировать модуль PowerShell:
Import-Module ActiveDirectory

Для поиска групп в AD по шаблону, можно воспользоваться такой командой PowerShell:

Get-ADGroup -Filter -Properties Description,info | Select Name,samaccountname,Description,info | Sort Name

поиск группы в AD с помощью PowerShell

Аналогично можно выполнить поиск по имени компьютера или пользователя:

Get-ADUser -Filter
Get-ADComputer -Filter

Если вы хотите выполнить универсальный поиск по всем типам объектам AD, используйте командлет Get-ADObject:

Get-ADObject -Filter –Properties * | select sAMAccountName, ObjectClass, userPrincipalName, DisplayName, Description | FT

Как вы видите, команда вывели все типа объектов в AD (ObjectClass: computer, user,group, msDS-GroupManagedServiceAccount).

Get-ADObject поиск любых объектов в Active Directory из консоли powershell

Можно использовать LDAP фильтр непосредственно в команде Get-ADObject, также добавим область поиска с помощью опции SearchBase:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=*sql*))" -SearchBase "OU=SPB,DC=winitpro,DC=ru"

Специальный командлет Search-ADAccount можно использовать для поиска отключенных, неактивных пользователей или компьютеров.

Надеюсь, эти простые способы облегчат вам задачу поиска объектов в Active Directory.

У командлетов Get-ADUser, Get-ADComputer, Get-ADGroup и Get-ADObject имеется параметр LdapFilter, специально предназначенный для использования LDAP-фильтров при поиске объектов в Active Directory. Для примера найдем всех пользователей с именем Vasya с помощью такой команды:

Get-ADUser -LdapFilter "(cn=Vasya)"

команда get-aduser

Большинство командлетов для поиска являются узкоспециализированными, т.е. предназначены только для определенного типа объектов (пользователи, компьютеры и т.п.). Исключение составляет командлет Get-ADObject, который может искать любые объекты. Например:

Get-ADObject -LdapFilter "(cn=Vasya)"

команда get-adobject

При использовании Get-ADObject мы получили не только пользователей, а все объекты с указанным в фильтре именем. Если требуется найти только пользователей, то надо в фильтре добавлять дополнительные параметры. Например:

Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=Vasya))"

команда get-adobject с дополнительными фильтрами

При помощи LDAP-фильтра нельзя указать область поиска. Для примера найдем всех пользователей, у которых в описании (Description) имеется слово Руководитель:

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * | ft -a DisplayName,Title

Эта команда произведет поиск по всему домену и выдаст всех найденных пользователей, вне зависимости от их местоположения.

поиск по всему домену

Для уточнения области поиска есть параметр SearchBase, с помощью которого можно указать для поиска конкретное подразделение (OU), например:

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local | ft -a DisplayName,Title

ограничение области поиска с помощью параметра Searchbase

Еще один полезный параметр Subtree, с помощью которого можно ограничить глубину поиска. Этот параметр может принимать 3 значения:

Для примера возьмем предыдущую команду и ограничим поиск верхним уровнем (OneLevel):

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local -SearcScope OneLevel | ft -a DisplayName,Title,DistinguishedName

ограничение глубины поиска с помощью параметра Searchscope

А затем зададим поиск по всем вложенным объектам (Subtree):

Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local -SearcScope SubTree | ft -a DisplayName,Title,DistinguishedName

Как видите, разница очевидна.

поиск по всему дереву без ограничений

Утилита dsquery возвращает различающееся имя (Distinquished Name) объекта, подходящего под заданные параметры, а для LDAP-фильтров у нее имеется параметр filter. К примеру, предыдущий запрос с использованием dsquery будет выглядеть так:

dsquery * OU=Employees,DC=test,DC=local -filter "(&(objectCategory=person)(objectClass=user)(Title=Руководитель*))" -Scope OneLevel

поиск с помощью dsquery

Утилита dsget получает на входе различающееся имя объекта и выдает для него значение указанного атрибута или атрибутов. Зачастую обе эти утилиты используются совместно, например:

dsquery * OU=Employees,DC=test,DC=local -filter "(&(objectCategory=person)(objectClass=user)(Title=Руководитель*))" | dsget user -display -title -dn

совместное использование dsquery и dsget

ADSIEdit

фильтры в ADSIEdit

В открывшемся окне указываем имя запроса, выбираем область поиска (Root of Search) и в поле Query String добавляем нужный фильтр. Для примера отберем всех отключенных пользователей. Дополнительно можно выбрать глубину поиска Subtree или One level.

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

В результате получим что то вроде этого.

результат работы фильтра в ADSIEdit

Active Directory Users and Computers

фильтры в ADUC

Даем запросу понятное имя и описание, в Query root выбираем область поиска и отмечаем пункт Include subconteiners (аналог Subtree) для поиска по всем вложенным объектам. Затем жмем кнопку Define Query.

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

Оснастка поддерживает несколько режимов и в принципе вовсе не обязательно писать текст фильтра вручную. Для наиболее часто встречающихся ситуаций достаточно выбрать нужный пункт и\или поставить галочку. Например, для показа всех пользователей с бессрочным паролем можно просто отметить чекбокс Non expiring passwords

общие запросы

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

Но мы не ищем легких путей, поэтому зададим фильтр руками. Для этого выбираем режим Custom Search и на вкладке Advanced вводим текст фильтра.

кастомные фильтрв в ADUC

В результате в папке Saved Queries появляется список пользователей, у которых пароль не истекает. Таким же образом можно отслеживать множестао различных параметров пользователей, компьютеров и т.д.

результат работы фильтра в ADUC

А полученные результаты можно экспортировать в виде списка. Очень удобный и полезный функционал.

экспорт отфильтрованного списка

Примеры LDAP-фильтров

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

Все пользователи:

Фильтр с использованием sAMAccountType более эффективен для объекта пользователь.

Все отключенные (Disabled) пользователи:

Все пользователи кроме отключенных:

Заблокированные (Locked) пользователи:

Здесь используется атрибут badPwdCount, в котором хранится количество неудачных попыток ввода пароля пользователем. Значение нужно указывать в соответствии с политиками безопасности вашего домена.

Пользователи, не менявшие пароль более 3 месяцев:

Атрибут pwdlastSet содержит в себе дату и время последней смены пароля пользователем. Он имеет тип Integer8 и представляет собой число временных интервалов длительностью 100 наносекунд, прошедших с 12:00 01.01.1601 (UTC). Получить требуемое значение можно с помощью PowerShell, например:

Пользователи, у которых пароль не истекает (Password newer expires):

Пользователи, обязанные сменить пароль при следующем входе в систему:

Если значение атрибута pwdlastSet равно 0 и при этом в свойствах учетной записи не отмечен пункт Password newer expires, то пользователь должен сменить пароль при следующем входе.

Пользователи, у которых не требуется пароль:

Пользователи с ограниченным сроком действия учетной записи:

Пользователи, у которых срок действия учетной записи не ограничен:

Атрибут accountExpires содержит дату истечения срока действия учетной записи и тоже представляет из себя число 100нс интервалов, прошедших с 01.01.1601 (UTC). Значение 0 или 9223372036854775807 (максимально возможное 64-битное число) означает, что срок действия учетной записи никогда не истечет.

Пользователи, созданные за определенный период:

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

YYYY MM DD HH mm ss.s Z

2020 01 01 00 00 00.0 Z

Кстати, таким образом можно искать не только пользователей, но и любые другие объекты в AD (компьютеры, группы и т.п.).

Пользователи, не заходившие в систему более чем 3 месяца:

Атрибуты lastLogon и lastLogonTimeStamp имеют такой же кривой тип, как pwdLastSet, и вычисляются таким же образом. Но между ними есть кардинальные различия, о которых необходимо знать.

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

lastLogonTimeStamp также изменяется при входе пользователя, при этом он реплицируется на все контроллеры домена. Но сама репликация происходит с большой задержкой, порядка 9-14 дней. Поэтому полученные с его помощью данные могут быть не очень актуальны.

Пользователи, никогда не заходившие в систему:

Пользователи с почтовыми ящиками:

Пользователи, скрытые из адресной книги:

Все компьютеры:

Все компьютеры с определенной ОС:

Вместо Windows 7 можно поставить любую требуемую ОС.

Все серверы (компьютеры с серверной ОС):

Все контроллеры домена:

Контроллеры домена, доступные только для чтения:

Все серверы, не являющиеся контроллерами домена:

SQL серверы:

Exchange серверы:

Все группы:

Все локальные (Domain local) группы:

Все глобальные (Global) группы:

Все универсальные (Universal) группы:

Все группы безопасности (Security):

Все группы рассылки (Distribution):

Во втором случае ищутся все группы, имеющие почтовый адрес. Напомню, что группы безопасности также могут иметь почтовый адрес и использоваться для рассылки.

Все локальные группы безопасности:

Теоретически правильно использовать отрицательное значение, на практике работают оба.

Все глобальные группы безопасности:

Все универсальные группы безопасности:

Все встроенные группы (BuiltIn):

Все глобальные группы рассылки:

У группы безопасности восьмой бит должен быть установлен в 1, соответственно значение маски равно 2147483648. У группы рассылки этот бит установлен в о, соответственно и значение маски равно 0. Отсюда получаем значение 0 (Distribution) + 2 (Global) = 2 (Global Distribution Group).

Все локальные группы рассылки:

Все универсальные группы рассылки:

Все члены группы (без учета вложенности):

Все члены группы с учетом вложенности:

Все пользователи, не являющиеся членами группы (с учетом вложенности):

Все группы, в которые входит пользователь:

Все группы, в которые входит пользователь (с учетом вложенности):

Все пустые группы:

Все подразделения (OU):

Все контейнеры (CN):

Все встроенные контейнеры:

Все объекты групповой политики:

Все отношения доверия:

Все связи между сайтами в контейнере конфигурации:

Для запросов к атрибутам конфигурации нужно использовать поиск по контейнеру Configuration (напр. cn=Configuration,dc=test,dc=local).

Объекты, защищенные AdminSDHolder:

Обратите внимание, что при удалении пользователя из защищенной группы его атрибут adminCount не возвращается к прежнему значению, соответственно запрос выдаст всех, кто когда либо входил в одну из этих групп.

Объекты, которые не могут быть удалены:

Атрибут systemFlags определяет дополнительные свойства объекта и представляет из себя битовую маску.

Объекты, которые не могут быть перенесены:

Объекты, которые не могут быть переименованы:

Атрибуты, помеченные в схеме как конфиденциальные:

Атрибут searchFlags определяет правила поиска и индексации для атрибута и представляет из себя битовую маску.

Атрибуты, сохраняемые в объекте захоронении (tombstone) при удалении объекта:

Объекты nTDSDSA связанные с глобальным каталогом:

С помощью этого запроса можно найти серверы глобального каталога. Поиск нужно проводить по контейнеру конфигурации. Подробнее об объектах nTDSDSA и их атрибутах.

Объекты nTDSDSA связанные с ролями FSMO:

Get-ADUser получение списка пользователей в AD Powershell

Get-ADUser команда, которая возвращает список пользователей AD в Powershell. На самом деле командлет мало чем отличается от тех, которые мы рассматривали раннее с приставкой "Get-AD".

Для работы с командой нам понадобится Powershell Active Directory Module.

Так мы вернем всех пользователей AD:

Если нам нужно найти по имени, сделайте так:

Где вместо Adminis имя вашей учетной записи. Звездочки позволяют искать вхождение где справа и слева могут быть еще символы.

Для получения сведений об одной учетной записи AD есть ключ Identity:

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

Powershell Get-ADUser -Filter


Если мы хотим выполнить Get-ADUser в OU, то для этого есть дополнительный ключ, который может искать в организационных единицах и контейнерах. В моем случае я ищу в OU Moscow и домене domain.local:

Если вам нужно искать в контейнере - используйте CN. Примеры с множеством OU смотрите ниже.

Навигация по посту

Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter

Мы можем фильтровать по одному или множеству свойств. Для того что бы увидеть все свойства нужно сделать:

Powershell Get-ADUser Properties

В области 1 выделены все имена, по которым мы можем фильтровать. В области 2 тип данных с которыми мы можем сравнивать. Т.е. если тип данных у области 2 string (строка), то это плохая идея сравнивать с числом (int). Нужно сразу отметить, что те свойства, которые мы получаем благодаря ключу Properties мы не можем применять в Filter.

Примеры с Get-Member мы уже рассматривали раньше.

Для примера так мы можем получить всех пользователей, у которых указан город Moscow:

А теперь найдем всех пользователей, которые неверно вводили пароль более одного раза и в они включены:

Т.к. BadLogonCount - это свойство от ключа Properties оно должно проверятся через конвейер в Where.

Еще один пример, но теперь нужно найти пользователя имя которого содержит 0001 и он активен:

Get-ADUser Filter пример

Получение списка пользователей Active Directory в Powershell Get-User из нескольких OU

В команде нет встроенных средств поиска в нескольких объектах сразу. Мы можем объявить переменную, содержащую этот список и затем передать через цикл. На моем пример используется контейнер Users и OU Moscow:

Если бы у меня была OU Ekaterinburg в которой находилось OU Marketing написать стоило бы так:

Выгрузка пользователей из AD в Excel с Powershell

Экспорт и выгрузка может быть во множество форматов, но для выгрузки в Excel есть специальный формат CSV. Для того что бы сделать выгрузку достаточно выполнить следующее:

Если мы хотим выгрузить только определенные свойства, то в поле SELECT -Property нужно их перечислить:

Получение Email пользователя AD в Powershell

Нужное свойство мы можем получить через соответствующий ключ Properties. Так я получу почту у конкретного пользователя Administrator:

Powershell email пользователя

Выгрузим в CSV имена только тех пользователей у которых нет почты:

Читайте также: