Сегодня возникла задача генерации списка почтовых адресов в домене на базе учётных записей из Active Directory. Задача решается за 10 минут в консоли PowerShell. Решение задачи в конце поста, а до этого несколько полезных запросов.
Для начала просто список всех аккаунтов в виде таблицы:
Get-ADUser -Filter {SamAccountName -like "*"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Можно подсчитать количество всех аккаунтов в Active Directory:
Get-ADUser -Filter {SamAccountName -like "*"} | Measure-Object
Теперь получим список всех активных аккаунтов в Active Directory (то есть не заблокированных):
Get-ADUser -Filter {Enabled -eq "True"} | Select-Object SamAccountName,Name,Surname,GivenName | Format-Table
Сосчитаем количество активных аккаунтов:
Get-ADUser -Filter {Enabled -eq "True"} | Select-Object SamAccountName,Name,Surname,GivenName | Measure-Object
Теперь получим список активных аккаунтов у которых есть почтовые адреса:
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Format-Table
Подготовим адресную книгу в виде csv файла, подходящего например для Mozilla Thunderbird:
Get-ADUser -Filter {(mail -ne "null") -and (Enabled -eq "true")} -Properties Surname,GivenName,mail | Select-Object Name,Surname,GivenName,mail | Export-Csv -NoTypeInformation -Encoding utf8 -delimiter "," $env:temp\maillist.csv
Открыть полученные файлы можно введя: notepad $env:temp\maillist.csv