Заметка о том, как произвести импорт пользователей в Active Directory с CSV файла при помощи PowerShell.
Периодически могут возникать задачи по созданию группы пользователей и в этом случае есть два пути развития событий: создавать каждый аккаунт в ручном режиме с помощью графических консолей или через PowerShell. Последний вариант является предпочтительным, так как позволит за считанные секунды произвести импорт тысяч новых аккаунтов в директорию или быть частью решения автоматизации. За создание нового пользователя отвечает командлет New-ADUser. Он обладает внушительным набором параметров c которыми можно ознакомится на docs.microsoft.com. Вот пример создания нового пользователя Active Directory:
1 | New-ADUser -Name "Vasia Pupkin" -DisplayName "Vasia Pupkin" -GivenName Pupkin -Surname Pupkin -EmailAddress pupkin@ait.in.ua -UserPrincipalName pupkin@ait.in.ua -SamAccountName pupkin -Path "CN=Users,DC=corp,DC=ait,DC=in,DC=ua" -AccountPassword (ConvertTo-SecureString "Pa@@w0rd" -AsPlainText -force) -Enabled $true |
Это рабочая конструкция создаст одного пользователя с помощью PowerShell, но только одного. Для задач массового импорта, необходимо переписать конструкцию выполнив параметризацию значений, импорт переменных с CSV файла и добавление цикла. Получим следующее:
1 2 3 4 5 6 7 8 9 10 11 12 13 | Import-Csv "C:\temp\users.csv" | ForEach-Object { $upn = $_.SamAccountName + “@corp.ait.in.ua” $uname = $_.LastName + " " + $_.FirstName New-ADUser -Name $uname ` -DisplayName $uname ` -GivenName $_.FirstName ` -Surname $_.LastName ` -EmailAddress $_.EmailAddress` -UserPrincipalName $upn ` -SamAccountName $_.samAccountName ` -Path $_.OU ` -AccountPassword (ConvertTo-SecureString $_.Password -AsPlainText -force) -Enabled $true } |
где, C:\temp\users.csv – путь к CSV файлу, пример которого можно взять тут.
При необходимости, скрипт возможно добавить новые параметры. Например, –City или –MobilePhone. Сами же данные, необходимо добавить в качестве нового столбца CSV файла. Таким образом, возможно производить массовый импорт пользователей в Active Directory с минимальными издержками.
Если у вас возникли какие-либо вопросы, пожалуйста, пишите в комментарии.
спасибо. самая главная загвостка, с которой я столкнулся это нормально выгрузить список пользователей.
При первом написании скрипта OU уже должны быть созданы?
да