Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

Get-ADUser Export-Csv Windows Server, AD и Роли

Экспорт пользователей Active Directory в Excel: скрипт PowerShell Get-ADUser

Обновлено: 27.08.2026 · Официальная документация ↗

Задача: предоставить руководству или отделу кадров список сотрудников

Руководство компании или отдел кадров часто просят предоставить актуальный телефонный справочник или список всех учетных записей компании с указанием их ФИО, должности, отдела и статуса блокировки. Переписывать данные вручную из оснастки dsa.msc — долго и неэффективно.

Решение:

Использование одного короткого скрипта PowerShell с командлетом Get-ADUser, который собирает нужные поля из Active Directory и формирует файл .csv, открывающийся прямо в Microsoft Excel.

Готовый скрипт экспорта пользователей в CSV/Excel

  1. Запустите консоль PowerShell от имени Администратора на контроллере домена или на ПК с установленным пакетом RSAT.
  2. Выполните следующий скрипт (скопируйте целиком):
    Get-ADUser -Filter * -Properties DisplayName, Title, Department, TelephoneNumber, Mail, Enabled, CanonicalName |
    Select-Object @{N='ФИО';E={$_.DisplayName}},
                  @{N='Должность';E={$_.Title}},
                  @{N='Отдел';E={$_.Department}},
                  @{N='Телефон';E={$_.TelephoneNumber}},
                  @{N='Email';E={$_.Mail}},
                  @{N='Активен';E={if($_.Enabled){'Да'}else{'Заблокирован'}}},
                  @{N='Подразделение OU';E={$_.CanonicalName}} |
    Export-Csv -Path "C:\AD_Users_List.csv" -NoTypeInformation -Encoding UTF8 -Delimiter ";"
  3. Откройте диск C:\ и дважды кликните по созданному файлу AD_Users_List.csv. Он автоматически откроется в Microsoft Excel с правильным разделением на колонки.

Полезные модификации фильтра:

Выгрузить ТОЛЬКО активных сотрудников (без заблокированных):

Get-ADUser -Filter 'Enabled -eq $true' -Properties ...

Выгрузить сотрудников только из конкретного подразделения (OU):

Get-ADUser -Filter * -SearchBase "OU=Buhgalteria,OU=Users,DC=company,DC=local" -Properties ...
💡 Практика специалистов: Для получения реального времени последнего логина пользователя в многосерверном домене используйте свойство LastLogonDate (рассчитывается из реплицируемого атрибута lastLogonTimestamp), так как атрибут lastLogon хранится локально на каждом контроллере и не реплицируется.

Частые вопросы (FAQ)

Почему в Excel вместо русских букв отображаются 'кракозябры'?

Старые версии Excel по умолчанию ожидают кодировку Windows-1251. Если текст отображается некорректно, замените в скрипте параметр -Encoding UTF8 на -Encoding Default.

Почему при запуске Get-ADUser выдается ошибка 'Команда не найдена'?

На компьютере не установлен модуль Active Directory. На сервере выполните: Install-WindowsFeature RSAT-AD-PowerShell, либо на Windows 10/11 включите компонент RSAT: Active Directory Domain Services.

Как добавить в выгрузку дату последнего входа пользователя?

Добавьте в блок -Properties параметр LastLogonDate и в Select-Object строку @{N='Последний вход';E={$_.LastLogonDate}}.

Зачем в Export-Csv указан параметр -Delimiter ';'

В русскоязычных версиях Windows и Excel стандартным системным разделителем колонок CSV является точка с запятой (;), а не запятая.

Полезные материалы
Рекомендуем