Работа с пользователями Active Directory в Powershell


Тематические термины: Active Directory, Powershell.
Для работы с пользователями AD DS средствами Powershell необходимо загрузить соответствующий модуль командой:
> Import-Module ActiveDirectory
Просмотр
Информация о пользователях
1. Список пользователей домена:
> Get-ADUser -filter * | Select Name, SamAccountName
2. Простая информация о пользователе:
> Get-ADUser dmosk
* где 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. Использовать фильтр:
> Get-ADUser -filter { Name -notlike "Мартынов Мартын Мартынович" -and Name -notlike "Макаров Макар Макарович" }
б) Способ 2. С помощью Where и массива:
> $ExcludeUsers = @("Мартынов Мартын Мартынович", "Макаров Макар Макарович")
> Get-ADUser -filter * | Where { $ExcludeUsers -notcontains $_.Name }
* обе команды выведут всех пользователей, кроме тех, что перечислены в фильтре.
Выгрузка пользователей в 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 | % { Set-ADUser $_ -OfficePhone "+7(812)999-99-99" }
* редактируем атрибут OfficePhone. Последний не выводится командой по умолчанию, поэтому мы указываем его в параметре -Properties.
Редактирование мобильного телефона по ФИО пользователя
> Get-ADUser -Filter {name -eq 'Иванов Иван Иванович'} -Properties mobile | % { Set-ADUser $_ -mobile "+7(999)999-99-99" }
* сначала находим пользователя по ФИО, затем редактируем атрибут mobile.
Редактирование комнаты сотрудника
> Set-ADUser dmosk -Office "Санкт-Петербург, Невский проспект"
* в данном примере редактируется местонахождение сотрудника с именем входа dmosk.
Добавление пользователя в группу
> Add-ADGroupMember -Identity "Группа в AD" -Member master
* с помощью данной команды мы добавим пользователя master в группу Группа в AD.
Задать подразделение, в котором работает пользователь
Редактируем атрибут department:
> Set-ADUser dmosk -department "Отдел сопровождения железнодорожных молекул"
* в данном примере мы указали, что пользователь dmosk работает в «Отделе сопровождения железнодорожных молекул».
Читайте также
Работа с группами пользователей Active Directory с помощью Powershell