Получение списка всех пользователей Active Directory с указанием их электронной почты

Чтобы получить список пользователей AD с указанием их электронной почты можно воспользоваться следующим скриптом PowerShell

cls import-module ActiveDirectory Get-ADUser -Filter {Enabled -eq 'True'} -SearchBase 'CN=Users,DC=test,DC=ru' -SearchScope Subtree -Properties displayName, Name, mail, sn, initials, mail, telephoneNumber, company, department, title | `sort-object displayName | select-object -property @{Name = "Имя"; Expression = {$_.displayName;}}, @{Name = "Enabled"; Expression = {$_.Enabled;}}, @{Name = "Login"; Expression = {$_.Name;}}, @{Name = "Mail"; Expression = {$_.Mail;}}, @{Name = "Телефон"; Expression = {$_.telephoneNumber;}}, @{Name = "Организация"; Expression = {$_.company;}}, @{Name = "Отдел"; Expression = {$_.department;}}, @{Name = "Должность"; Expression = {$_.title;}} | Export-Csv "C:\Userlist.csv" -notype -Delimiter ";" -encoding "unicode"

Скрипт выполняется на контроллере домена
В результате выполнения этого скрипта на диске C будет сформирован csv-файл, со всеми необходимыми данными. Обращаю Ваше внимание на слова выделенные жирным — вместо указанных данных необходимо ввести ваши параметры домена.

Также на просторах интернета был найден вот такой скрипт:

 

$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = "LDAP://cn=Users,dc=test,dc=ru"
$objSearcher.Filter = "(&(objectCategory=person)(!userAccountControl:1.2.840.113556.1.4.803:=2))"
$users = $objSearcher.FindAll()
# Количество учетных записей
$users.Count
$users | ForEach-Object {
   $user = $_.Properties
   New-Object PsObject -Property @{
   Должность = [string]$user.description
   Отдел = [string]$user.department
   Логин = [string]$user.userprincipalname
   Телефон = [string]$user.telephonenumber
   Комната = [string]$user.physicaldeliveryofficename
   ФИО = [string]$user.cn
    }
} | Export-Csv -NoClobber -Encoding utf8 -Path  "c:\ist_users.csv"

Он делает собственно тоже самое, но немного другой формат вывода данных и данный скрипт можно запускать с локальной рабочей станции, а не только с самого контроллера домена.

comments powered by HyperComments