- Как через Powershell получить список пользователей AD с Get-ADUser
- Поиск и фильтрация списка пользователей AD в Powershell Get-ADUser -Filter
- Получение списка пользователей Active Directory в Powershell Get-User из нескольких OU
- Выгрузка пользователей из AD в Excel с Powershell
- Получение Email пользователя AD в Powershell
- Получение списка пользователей чей срок действия пароля истек в Powershell
- Работа с пользователями Active Directory в Powershell
- Просмотр
- Информация о пользователях
- Выгрузка пользователей в CSV (для просмотра в текстовом формате или Excel)
- Список групп пользователя
- Редактирование
- Редактирование домашней страницы пользователя
- Редактирование телефона
- Редактирование мобильного телефона по ФИО пользователя
- Редактирование комнаты сотрудника
- Добавление пользователя в группу
- Задать подразделение, в котором работает пользователь
- Как получить в Powershell список групп и их пользователей
- Примеры с Get-ADGroup Filter
- Получаем список пользователей группы в Powershell Get-ADGroup
- Получение в Powershell групп пользователя
- Использование Get-ADUser для получения разной информации о пользователях домена AD
Как через Powershell получить список пользователей AD с Get-ADUser
01 августа 2019
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 имена только тех пользователей у которых нет почты:
Получение списка пользователей чей срок действия пароля истек в Powershell
Для того что бы увидеть все свойства относящиеся к паролям выполните:
И затем, по этому свойству, отфильтруем пользователей:
Источник
Работа с пользователями Active Directory в Powershell
Для работы с пользователями AD DS средствами Powershell необходимо загрузить соответствующий модуль командой:
Просмотр
Информация о пользователях
1. Список пользователей домена:
> Get-ADUser -filter * | Select Name, SamAccountName
2. Простая информация о пользователе:
* где dmosk — логин пользователя в AD DS, для которого смотрим атрибуты.
3. Как посмотреть все атрибуты пользователя:
> Get-ADUser dmosk -Properties *
4. Список пользователей в определенном организационном юните:
> Get-ADUser -filter * -SearchBase «OU=Пользователи,DC=dmosk,DC=local»
5. Поиск пользователей с определенным значением атрибута:
> Get-ADUser -filter * -Properties title | where < ($_.title -eq "Инженер") >| Select Name
* в данном примере мы выгружаем пользователей, должность которых «Инженер».
6. Исключить из поиска и показа определенных пользователей.
а) Способ 1. Использовать фильтр:
б) Способ 2. С помощью Where и массива:
> $ExcludeUsers = @(«Мартынов Мартын Мартынович», «Макаров Макар Макарович»)
> Get-ADUser -filter * | Where
* обе команды выведут всех пользователей, кроме тех, что перечислены в фильтре.
Выгрузка пользователей в CSV (для просмотра в текстовом формате или Excel)
Выгрузку делаем при помощи командлета Export-csv.
1. Выгрузка всех данных о всех пользователях
Get-ADUser -filter * -Properties * | Export-csv -path C:\Temp\ADUsers.csv
* C:\Temp\ADUsers.csv — путь к выгружаемому файлу.
2. Выгрузка только номеров телефонов и адресов электронной почты для пользователей, находящихся в определенном контейнере:
Get-ADUser -filter * -SearchBase «OU=Пользователи,DC=dmosk,DC=local» -Properties mobile, mail | Select Name, mobile, mail | Export-csv -Encoding UTF8 -Delimiter «;» -path C:\Temp\UserPhoneAndEmail.csv
* обратите внимание, что мы в данной выгрузки используем кодировку UTF-8 и в качестве разделителя знак ;.
Список групп пользователя
Get-AdUser dmosk -Properties memberof | Select memberof -expandproperty memberof
* где expandproperty позволяет просмотреть значение коллекций в удобочитаемом виде.
Редактирование
Редактирование информации выполняется с помощью командлета Set-ADUser и передачи в качестве параметра имя атрибута с новым значением. Рассмотрим несколько примеров изменения информации с помощью данной команды.
Редактирование домашней страницы пользователя
> Set-ADUser dmosk -HomePage «dmosk.ru»
* в данном примере редактируется домашняя страница для пользователя с логином dmosk.
Редактирование телефона
> Get-ADUser -Filter dmosk -Properties OfficePhone | %
* редактируем атрибут OfficePhone. Последний не выводится командой по умолчанию, поэтому мы указываем его в параметре -Properties.
Редактирование мобильного телефона по ФИО пользователя
* сначала находим пользователя по ФИО, затем редактируем атрибут mobile.
Редактирование комнаты сотрудника
> Set-ADUser dmosk -Office «Санкт-Петербург, Невский проспект»
* в данном примере редактируется местонахождение сотрудника с именем входа dmosk.
Добавление пользователя в группу
> Add-ADGroupMember -Identity «Группа в AD» -Member master
* с помощью данной команды мы добавим пользователя master в группу Группа в AD.
Задать подразделение, в котором работает пользователь
Редактируем атрибут department:
> Set-ADUser dmosk -department «Отдел сопровождения железнодорожных молекул»
* в данном примере мы указали, что пользователь dmosk работает в «Отделе сопровождения железнодорожных молекул».
Источник
Как получить в Powershell список групп и их пользователей
Get-ADGroup — это команда, которая возвращает список групп в Powershell. Для того что бы вывести список пользователей в группе есть другая команда Get-ADGroupMember и мы ее тоже рассмотрим. В этих командлетах есть один обязательный ключ. Для примера так мы выведем весь список групп AD в Powershell:
Навигация по посту
Примеры с Get-ADGroup Filter
Если мы хотим вывести, например, только список групп безопасности, то можно сделать это так:
GroupCategory — это свойство, а eq ищет точное соответствие. Операторы сравнения powershell разбирались тут.
Свойств, которые мы бы хотели вывести или сравнить достаточно много и что бы увидеть их все выполните:
Можно делать сравнивание по нескольким значениям. Если я хочу получить группы созданные 20 дней назад, а так же что бы их тип был Distribution (группа распространения), мне следует сделать так:
Другие примеры рассматриваются дальше.
Получаем список пользователей группы в Powershell Get-ADGroup
Мы можем найти данные по группе указав только имя. В моем случае я ищу группу, где имя заканчивается на marketing:
- Properties — расширяет список стандартных свойств. В нашем случае указываем, что нам нужно получить список пользователей группы в Powershell
- Select — в таком варианте команда выводит список всех свойств, а не только стандартный список
У нас есть и другой способ получить список пользователей группы — это через Get-ADGroupMember. Принцип такой же как и в предыдущих вариантах:
Разница этих двух вариантов в том, что в первом случае мы получаем укороченную информацию о пользователях, а во втором более подробный список.
Для получение пользователей можно сделать и так, но в этом варианте есть минус, что мы должны писать точное соответствие имени:
В описании на сайте Microsoft пишут, что в нем появляется ошибка только в случае, если командлет возвращает более одной группы (в случае использования масок), но у меня так и не получилось это сделать. Вместо имени мы можем использовать SID и GUID.
Получение в Powershell групп пользователя
Обратная ситуация, когда мы хотим узнать в каких группах наш пользователь. Для этого тоже есть несколько вариантов. Первый — это через команду получения пользователей со свойством MemberOf:
Если мы хотим узнать какую либо подробную информацию о группе сделайте так:
Мы можем найти группы пользователя и так:
Но минус этого способа в том, что он будет выполняться дольше. Возможно это будет не заметно с 1000 пользователями, а вот с 50000 может.
Источник
Использование Get-ADUser для получения разной информации о пользователях домена AD
Не секрет, что начиная с первой версии PowerShell, Microsoft пытается сделать из него основной инструмент администрирования Windows. И во многом это получается! Сегодня на простых примерах, мы покажем возможности PowerShell, которые можно использовать для получения различной информации о пользователях Active Directory и их атрибутах.
В PowerShell 2.0 появился специальный модуль для работы с Active Directory — Active Directory Module for Windows PowerShell (представлен в Windows Server 2008 R2), командлеты которого позволяют выполнять различные манипуляции с объектами каталога AD. Для получения информации о пользователях домена Active Directory и их свойствах предназначен командлет Get-ADUser. С помощью командлета Get-ADUser можно получить значение любого атрибута существующей учетной записи пользователя в AD. Кроме того, можно указывать различные критерии выборки и формировать списки пользователей домена и их атрибутов.
В этом примере мы покажем, как с помощью командлета PowerShell Get-ADUser получить информацию, о том, когда последний раз менялся пароля пользователя и когда истекает срок его действия.
Запускаем окно Powershll с правами администратора и импортируем модуль Active Directory командой:
В клиентских ОС (в той же Windows 10) для работы коммандера Get-AdUser нужно установить соответствующую версию RSAT и включить в панели управления компонент Active Directory Module for Windows PowerShell (Remote Server Administration Tools -> Role Administration Tools -> AD DS and AD LDS Tools -> AD DS Tools).
Полный список всех аргументов командлета Get-ADUser можно получить так:
Чтобы вывести список всех учетных записей домена, выполним команду:
Формат возвращаемого списка не очень удобен для использования, выводится только некоторые основные 10 из более 120 атрибутов и свойств учетных записей пользователей (DN, SamAccountName, Name, SID, UPN и т.д) кроме того, мы видим, что информация о времени последней смены пароля отсутствует.
Чтобы вывести полную информации обо всех доступных атрибутах пользователя tuser, выполним команду:
Итак, мы видим полный список атрибутов пользователя AD и их значений, ассоциированных с учетной записью пользователя. Далее мы перейдем к форматированию вывода командлета Get-ADUser, так, чтобы отображались нужные нам поля. Нас интересуют атрибуты:
- PasswordExpired
- PasswordLastSet
- PasswordNeverExpires
Теперь в данных пользователя есть информация о дате смены пароля и времени, когда срок пароля истечет. Представим информацию в более удобном табличном виде:
Чтобы вывести данные пользователей из определенной OU, воспользуемся параметром SearchBase:
Результат выполнения команды можно выгрузить в текстовый файл:
Или в CSV, который в дальнейшем будет удобно экспортировать в Excel (дополнительно с помощью sort-object отсортируем таблицу по столбцу PasswordLastSet , а также добавим условие where – имя пользователя должно содержать строку «Dmitry»):
Таким образом, можно построить таблицу с любыми необходимыми атрибутами пользователей Active Directory.
Для получения списка учетных записей пользователей AD по определенному признаку используется параметр –Filter. В качестве аргументов этого параметра можно указать значение определённых атрибутов пользователей Active Directory, в результате командлет Get-ADUser будет применятся для пользователей, которые попадают под критерии фильтра.
Далее приведем еще несколько полезных вариантов запросов о пользователях Active Directory с помощью различных фильтров. Вы можете их комбинировать для получения необходимого списка пользователей AD:
Вывод пользователей AD, имя которых начинается с Roman:
Чтобы подсчитать общее количество всех аккаунтов в Active Directory:
Список всех активных (не заблокированных) учетных записей в AD:
Список учетных записей с истекшим сроком действия пароля:
Список активных учеток с почтовыми адресами:
Задача: для списка учетных записей, которые хранятся в текстовом файле (по одной учетке в строке) нужно получить телефон пользователя в AD и выгрузить информацию в текстовый csv файл (можно легко импортировать в Esxel).
Следующий пример позволяет выгрузить адресную книгу предприятия в виде csv файла, который в дальнейшем можно импортировать в Outlook или Mozilla Thunderbird:
Пользователи, которые не меняли свой пароль в течении последних 90 дней:
Чтобы получить фотографию пользователя из Active Directory и сохранить ее в jpg файл:
Список групп, в которых состоит учетная запись пользователя
Источник