PowerShell. Экспорт-Импорт пользователей AD

Встала как-то передо мной задача перенести пользователей с домена domain.com в домен domain.kz.

Ручками забивать данные 200 пользователей не хотелось (Бред). PowerShell


Получаем список всех пользователей в домене с выборкой определенных параметров.

Get-AdUser -Properties * -Filter * | Select Name,GivenName,SamAccountName,Surname,UserPrincipalName,Description,City| Export-Csv c:\users.csv

Это базовый набор параметров, который нужен для экспорта списка пользователей. Тут можно указать все, вплоть до расположения logon скрипта.

Далее импортируем в Excel для удобства обработки. Т.к. задача была импортировать пользователей с одного домена в другой, меняем конечную часть UserPrincipalName на @domain.kz
Удаляем записи служебных пользователей, вроде Administrator, Guest и т.п.

Подготовив файл и сохранив его на сервере, где расположен контроллер домена, запускаем PowerShell от имени администратора и импортируем файл с пользователями.

Import-Csv .\usertest.csv | New-AdUser -Enabled $True -AccountPassword (ConvertTo-SecureString 1qazxsw@ -AsPlainText -force)

где:

Import-Csv .\usertest.csv - импорт нашего csv файла со списком пользователей
New-AdUser - командлет PowerShell для создания нового пользователя
-Enabled $True  - устанавливаем пользователей в статус Enable - в противном случае по завершению импорта они будут все в статусе Disable, что является поводом для лишних ненужных движений.
-AccountPassword (ConvertTo-SecureString 1qazxsw@ -AsPlainText -force) - устанавливаем пароль по умолчанию 1qazxsw@.

Если желаете сразу раскидать пользователей по организационным единицам (OU) в файл импорта нужно добавить столбец Path - где указываете где нужно создать пользователя CN=department,DC=domain,DC=kz


После - улыбаемся и машем.

Берегите себя.