$objSearcher = New-Object System.DirectoryServices.DirectorySearcher
$objSearcher.SearchRoot = "LDAP://ou=Users,ou=Departmets,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 d:\list_users.csv
Как видно из скрипта все что нужно сделать это вписать необходимое подразделение, в данном примере это Users в подразделении Departments в домене test.ru. Ниже описаны поля которые мы хотим выгрузить в CSV, а в самом конце путь где будет сохранен файл d:\list_users.csv
Внимание!!! данный скрипт не отобразит более 1000 пользователей.
Для тех кто на- вы с Excel, распишу как добиться нормальной таблицы. Открываем в Excel (в данном примере буду использовать версию 2010)файл list_users.csv, выделяем первый столбец (путем нажатия на А), затем заходим во вкладку "Данные" и нажимаем "Текст по столбцам". Выбираем "с разделителями" и нажимаем "Далее".
После этого в Символе разделителе выбираете- запятая, нажимаем "Далее"
и кнопку "Готов".
В результате получаете таблицу с пользователями подразделения.
Я очень надеюсь, моя статья помогла Вам! Просьба поделиться ссылкой с друзьями: