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.
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
Установка как таковая не требуется. Просто распаковываем архив.
Запускаем утилиту. Какой-то из вариантов вам подойдёт.
При первом запуске принимаем лицензионной соглашение. Agree.
Указываем данные для подключения к AD. OK. Здесь же можно подключить имеющийся снапшот. Есть возможность сохранить текущее подключение.
Через меню File → Connect можно выполните несколько подключений, в том числе к снапшотам.
Оснастка и поиск объектов
Оснастка управления включает большое количество данных.
Слева древовидная структура AD, справа все атрибуты выбранного элемента. Очень удобно.
Для примера выделил единственного пользователя моего тестового домена. Вверху (и внизу) указан путь.
Поиск непростой. Вы можете указать целый набор критериев для поиска.
Снапшоты
Сделать снапшот можно в меню File → Create Snapshot.
Указываем описание и путь к файлу снапшота.
Примечательно, что можно снизить нагрузку на сервер, указав "Throttle maximum server utilization".
Удалю тестового пользователя и сделаю второй снапшот.
Загрузить снапшот можно в меню File → Connect.
Выбрав слева загруженный снапшот, можно его сравнить с другим. Compare → Compare Snapshot.
Теперь указываем снапшот для сравнения, выбираем сравниваемые объекты и атрибуты. Compare.
Найдено четыре отличия, все связаны с моим удалённым пользователем и его правами.
Примечания
Создание снапшотов можно автоматизировать через командную строку. Требуется указать два параметра: строку соединения и путь к файлу снапшота. В примере соединение указано для текущего домена.
Сравнивать можно не только объекты, но и права доступа к ним.
Я расписал не все функции, пользуйтесь на здоровье. Вместе с утилитой лежит файл руководства, почитайте.
Ad Explorer не восстанавливает AD с помощью снапшотов.
Задача поиска объектов в Active Directory (пользователей, групп или компьютеров) по имени с помощью некого шаблона, регулярного выражению или маске не так очевидна, как кажется на самом деле. Дело в том, что по-умолчанию графическая консоль ADUC (AD Users and Computers), не позволяет использовать подстановочные символы в начале или в середине поисковой фразы.
Например, вы хотите найти в Active Directory все группу, в имени которых содержится ключевое слово « SQL ». Если открыть консоль поиска (Find User, Contacts, and Groups) в ADUC и выполнить обычный поиск по ключевому слову SQL , то результаты скорее всего вас не устроят. Консоль ADUC выведет только группы и пользователей у которых указанное ключевое слово содержится в начале имени. Остальные объекты со словом sql не будут найдены. Поиск по маске *sql* также не даст результатов (подстановочные символы просто не работают).
Поиск пользователей и групп в Active Directory из консоли ADUC
Вы можете найти нужные объекты в графической консоли Active Directory Users and Computers ( dsa.msc ) с помощью простых LDAP запросов.
- Для этого, откройте меню Find и в выпадающем списке типов поиска выберите Custom Search;
- Переключитесь на вкладку Advanced;
- В поле LDAP query, введите: name=*sql*
Если нужно искать только объекты AD типа группа, используйте такой запрос.
Как вы видите, по данному шаблону было найдено множество объектов AD (группы, компьютеры, пользователи, сервисные gMSA аккаунты).
Вы можете использовать расширенные фильтры в консоли поиска AD. Для этого включите опцию Filter в меню View и используйте расширенные фильтры для детализации поиска.
С помощью пункта меню View -> Choose Columns вы можете добавить дополнительные атрибуты объектов AD, по которым можно фильтровать найденные объекты.
Если вы используете для поиска консоль Active Directory Administrative Center ( dsac.exe ), в ней также можно использовать шаблоны LDAP для поиска. Выберите Global Search и переключитесь в режим Convert to LDAP. Введите запрос в поле LDAP query.
Поиск компьютеров в Active Directory
Для поиска компьютеров и серверов в Active Directory по точному вхождению нужно в поле Find выбрать Computers и указать имя компьютера для поиска.
Если нужно найти компьютеры в 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
Аналогично можно выполнить поиск по имени компьютера или пользователя:
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).
Можно использовать 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-ADObject, который может искать любые объекты. Например:
Get-ADObject -LdapFilter "(cn=Vasya)"
При использовании Get-ADObject мы получили не только пользователей, а все объекты с указанным в фильтре именем. Если требуется найти только пользователей, то надо в фильтре добавлять дополнительные параметры. Например:
Get-ADObject -LdapFilter "(&(objectCategory=person)(objectClass=user)(cn=Vasya))"
При помощи 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
Еще один полезный параметр Subtree, с помощью которого можно ограничить глубину поиска. Этот параметр может принимать 3 значения:
Для примера возьмем предыдущую команду и ограничим поиск верхним уровнем (OneLevel):
Get-ADObject -LdapFilter "(Title=Руководитель*)" -Properties * -SearchBase "OU=Employees,DC=Test,DC=local -SearcScope OneLevel | ft -a DisplayName,Title,DistinguishedName
А затем зададим поиск по всем вложенным объектам (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
Утилита dsget получает на входе различающееся имя объекта и выдает для него значение указанного атрибута или атрибутов. Зачастую обе эти утилиты используются совместно, например:
dsquery * OU=Employees,DC=test,DC=local -filter "(&(objectCategory=person)(objectClass=user)(Title=Руководитель*))" | dsget user -display -title -dn
ADSIEdit
В открывшемся окне указываем имя запроса, выбираем область поиска (Root of Search) и в поле Query String добавляем нужный фильтр. Для примера отберем всех отключенных пользователей. Дополнительно можно выбрать глубину поиска Subtree или One level.
В результате получим что то вроде этого.
Active Directory Users and Computers
Даем запросу понятное имя и описание, в Query root выбираем область поиска и отмечаем пункт Include subconteiners (аналог Subtree) для поиска по всем вложенным объектам. Затем жмем кнопку Define Query.
Оснастка поддерживает несколько режимов и в принципе вовсе не обязательно писать текст фильтра вручную. Для наиболее часто встречающихся ситуаций достаточно выбрать нужный пункт и\или поставить галочку. Например, для показа всех пользователей с бессрочным паролем можно просто отметить чекбокс Non expiring passwords
Но мы не ищем легких путей, поэтому зададим фильтр руками. Для этого выбираем режим Custom Search и на вкладке Advanced вводим текст фильтра.
В результате в папке Saved Queries появляется список пользователей, у которых пароль не истекает. Таким же образом можно отслеживать множестао различных параметров пользователей, компьютеров и т.д.
А полученные результаты можно экспортировать в виде списка. Очень удобный и полезный функционал.
Примеры 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-AD".
Для работы с командой нам понадобится Powershell Active Directory Module.
Так мы вернем всех пользователей AD:
Если нам нужно найти по имени, сделайте так:
Где вместо Adminis имя вашей учетной записи. Звездочки позволяют искать вхождение где справа и слева могут быть еще символы.
Для получения сведений об одной учетной записи AD есть ключ Identity:
Кроме этого у нас есть дополнительный ключ Properties, который выводит дополнительные свойства у объекта пользователя:
Если мы хотим выполнить Get-ADUser в OU, то для этого есть дополнительный ключ, который может искать в организационных единицах и контейнерах. В моем случае я ищу в OU Moscow и домене domain.local:
Если вам нужно искать в контейнере - используйте CN. Примеры с множеством OU смотрите ниже.
Навигация по посту
Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter
Мы можем фильтровать по одному или множеству свойств. Для того что бы увидеть все свойства нужно сделать:
В области 1 выделены все имена, по которым мы можем фильтровать. В области 2 тип данных с которыми мы можем сравнивать. Т.е. если тип данных у области 2 string (строка), то это плохая идея сравнивать с числом (int). Нужно сразу отметить, что те свойства, которые мы получаем благодаря ключу Properties мы не можем применять в Filter.
Примеры с Get-Member мы уже рассматривали раньше.
Для примера так мы можем получить всех пользователей, у которых указан город Moscow:
А теперь найдем всех пользователей, которые неверно вводили пароль более одного раза и в они включены:
Т.к. BadLogonCount - это свойство от ключа Properties оно должно проверятся через конвейер в Where.
Еще один пример, но теперь нужно найти пользователя имя которого содержит 0001 и он активен:
Получение списка пользователей 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:
Выгрузим в CSV имена только тех пользователей у которых нет почты:
Читайте также: