PowerShell. Генерация адресной книги из Active Directory

Сегодня возникла задача генерации списка почтовых адресов в домене на базе учётных записей из 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

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *