👥 Импорт пользователей в Active Directory из CSV или XLS

by itisgood

Если вам нужно создать много новых учетных записей пользователей в домене одновременно, крайне неэффективно создавать их все вручную с графической консоли Active Directory Users and Computers (ADUC).

В этой статье мы рассмотрим простой скрипт PowerShell, который позволяет импортировать пользовательские данные из файла CSV / XLS и создавать для них учетные записи в домене Active Directory.

Прежде всего, создайте файл NewUser.xlsx в Excel со следующей структурой заголовка:

FullName;sn;givenName;company;department;title;telephoneNumber;City;sAMAccountName;Password

Заполните файл Excel данными всех пользователей, которых вы хотите создать в Active Directory (обычно эти данные предоставляются из системы учета персонала).

Экспортируйте файл Excel в формат CSV с запятыми в качестве разделителей (Файл> Сохранить как> Тип файла: CSV, Имя файла: new_as_users.csv).

Если вы хотите использовать «;» в качестве разделителя, вам нужно добавить следующий аргумент в командлет Import-CSV -delimiter «;».

Для создания новых пользователей в домене мы будем использовать командлет New-ADUser из модуля Active Directory для Windows PowerShell, поэтому перед запуском скрипта PowerShell убедитесь, что этот модуль установлен на сервере / компьютере, с которого вы выполняете импорт пользователей.

Создайте файл import_ad_users.ps1 со следующим кодом PowerShell (измените имя своего домена и организационную единицу Active Directory, в которой вы хотите создать пользователей):

Import-Module ActiveDirectory

$Domain="@theitbros.cpm"

$UserOu="OU=Users,OU=UK,DC=theitbros,DC=com"

$NewUsersList=Import-CSV "C:\PS\new_as_users.csv"

ForEach ($User in $NewUsersList) {

$FullName=$User.FullName

$Company=$User.company

$Department=$User.department

$Description=$User.description

$givenName=$User.givenName

$title=$User.title

$City=$User.City

$telephoneNumber=$User.telephoneNumber

$sAMAccountName=$User.sAMAccountName

$sn=$User.sn

$userPrincipalName=$User.sAMAccountName+$Domain

$userPassword=$User.Password

$expire=$null

New-ADUser -PassThru -Path $UserOu -Enabled $True -ChangePasswordAtLogon $True -AccountPassword (ConvertTo-SecureString $userPassword -AsPlainText -Force) -CannotChangePassword $False -City $City -Company $Company -Department $Department –title $title –OfficePhone $telephoneNumber -DisplayName $FullName -GivenName $givenName -Name $FullName -SamAccountName $sAMAccountName -Surname $sn -UserPrincipalName $userPrincipalName

}

Запись. Options-ChangePasswordAtLogon $ True требует изменения пароля пользователя при первом входе в систему, -CannotChangePassword $ False – позволяет пользователю самостоятельно изменять пароли.

Если вы создаете учетные записи служб, вы можете указать -ChangePasswordAtLogon $ False, -CannotChangePassword $ True.

Запустите скрипт из командной строки PowerShell, затем откройте консоль ADUC и убедитесь, что в указанном подразделении появились новые пользователи.

Как видите, этот скрипт PowerShell позволяет массово импортировать пользователей в Active Directory за несколько минут.
Вы можете удалить или добавить любые атрибуты пользователя в скрипт и файл CSV / Excel из AD.
Полный список доступных пользовательских атрибутов в схеме вашего домена можно отобразить с помощью следующего командлета:
Get-ADUser –identity administrator –filter * -properties *|fl

 

You may also like

8 комментариев

fed0r 16.02.2021 - 08:50

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

Reply
itisgood 16.02.2021 - 08:53

это вопрос?

Reply
Scroot 23.08.2021 - 08:00

Видимо рассуждение или мысли вслух. Все написано в одном регистре без знаков препинания…..
Даже становится интересно – как он скрипты пишет.

Reply
Kos 17.01.2022 - 17:55

через 0

Reply
itisgood 18.01.2022 - 17:36

😀

Алексей 16.05.2022 - 13:25

Доброго времени суток, ребят подскажите пожалуйста, ps возвращает следующий результат:
PS C:\AD> C:\AD\import_ad_user.ps1
Командлет New-ADUser в конвейере команд в позиции 1
Укажите значения для следующих параметров:
Name:
А что за Name такой? Вводил разные варианты от имени пользователя, до имени подразделения, результат следующий:
New-ADUser : Не удается проверить аргумент для параметра “Name”. Аргумент пустой или имеет значение NULL. Укажите непустой аргумент, не имеющий значение NULL, после чего
повторите выполнение команды.
C:\AD\import_ad_user.ps1:16 знак:1
+ New-ADUser -PassThru -Path $UserOu -Enabled $True -ChangePasswordAtLogon $True – …
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidData: (:) [New-ADUser], ParameterBindingValidationException
+ FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.ActiveDirectory.Management.Commands.NewADUser

Подскажите пожалуйста, в чем может быть проблема

Reply
dr_martins 26.09.2022 - 16:17

Сначала столкнулся с такой же бедой, поковырялся и понял где провал:
1) добавил ли ты параметр “разделитель = ;”?
2) сохранил ли ты файл не просто в csv с разделителем-запятой, а с поддержкой UTF-8?
3) сам параметр -Name $FullName не забыл?

Reply
aslan 13.09.2023 - 15:41

Доброго дня!
подскажи как добавить и почту email ?

Reply

Leave a Comment