Поиск по сайту
Интересуешься IT и системным администрированием? Подпишись на наш канал, где мы делимся инсайдами, новостями и практическими советами! Прокачай свои навыки вместе с нами!
Как импортировать пользователей AD из CSV с помощью PowerShell
Иногда возникает необходимость массового добавления пользователей в Active Directory. Вы уже создали CSV-файл с экспортированными данными пользователей, и теперь планируете использовать его для обратного импорта в AD. Самым быстрым и удобным способом выполнения этой задачи является использование PowerShell. В этой статье мы подробно расскажем, как с его помощью легко и эффективно импортировать пользователей в Active Directory.
Онлайн-курс: Zabbix 6. Мониторинг IT инфраструктуры предприятия.
Курс предлагает глубокое изучение Zabbix 6 и охватывает все ключевые аспекты: от установки и конфигурации до продвинутого мониторинга и автоматизации. Курс подходит как для начинающих, так и для опытных администраторов.
Содержание:
- Скрипт PowerShell для импорта пользователей в Active Directory
- Как импортировать пользователей в Active Directory из CSV-файла
- Шаг 1: Создайте CSV-файл с пользователями
- Шаг 2: Подготовка скрипта PowerShell для импорта пользователей AD
- Шаг 3: Запуск скрипта PowerShell для импорта пользователей AD
- Шаг 4: Проверка пользователей AD
- Заключение
Скрипт PowerShell для импорта пользователей в Active Directory
Скрипт Import-ADUsers.ps1 предназначен для обработки данных из CSV-файла и создания пользователей в Active Directory. Для каждого пользователя будут созданы учетные записи с учетом следующих данных:
- Полное имя
- Имя
- Фамилия
- Отображаемое имя
- Логин пользователя
- Основное имя пользователя (UPN)
- Улица
- Город
- Штат/регион
- Почтовый индекс
- Страна
- Должность
- Отдел
- Компания
- Руководитель
- Организационная единица (OU)
- Описание
- Офис
- Номер телефона
- Электронная почта
- Мобильный телефон
- Заметки
- Статус учетной записи
Примечание: Учетные записи будут созданы с паролем по умолчанию P@ssw0rd1234. Рекомендуется изменить этот пароль на другой в коде PowerShell-скрипта.
Как импортировать пользователей в Active Directory из CSV-файла
В этом руководстве мы рассмотрим процесс массового импорта пользователей в Active Directory с использованием CSV-файла и PowerShell. Следуйте этим шагам, чтобы упростить создание учетных записей и сделать процесс более эффективным.
Шаг 1: Создайте CSV-файл с пользователями
Для импорта пользователей в Active Directory с помощью скрипта вам потребуется CSV-файл. Без него выполнить процесс невозможно.
Если у вас уже есть Active Directory, вы можете воспользоваться скриптом из статьи Экспорт пользователей AD в CSV с помощью PowerShell. После выполнения скрипта используйте созданный CSV-файл.
Если у вас нет Active Directory для экспорта пользователей и вам нужен только пример CSV-файла, который вы сможете отредактировать и использовать, скачайте файл ImportADUsers.csv.
Шаг 2: Подготовка скрипта PowerShell для импорта пользователей AD
Скачайте и поместите PowerShell-скрипт Import-ADUsers.ps1 в папку C:\scripts на вашем контроллере домена. Если папка scripts отсутствует, создайте её.
Убедитесь, что файл разблокирован, чтобы избежать ошибок при выполнении скрипта. Подробнее об этой проблеме можно узнать в статье Как исправить ошибку «Отсутствует цифровая подпись» при запуске скрипта PowerShell.
Альтернативный вариант: скопируйте код скрипта ниже и вставьте его в Блокнот. Сохраните файл с именем Import-ADUsers.ps1 и поместите его в папку C:\scripts.
<#
.SYNOPSIS
Import-ADUsers.ps1
.DESCRIPTION
Import Active Directory users from CSV file.
.CHANGELOG
V2.00, 02/11/2024 - Refactored script
#>
# Define the CSV file location and import the data
$Csvfile = "C:\temp\ImportADUsers.csv"
$Users = Import-Csv $Csvfile
# The password for the new user
$Password = "P@ssw0rd1234"
# Import the Active Directory module
Import-Module ActiveDirectory
# Loop through each user
foreach ($User in $Users) {
try {
# Retrieve the Manager distinguished name
$managerDN = if ($User.'Manager') {
Get-ADUser -Filter "DisplayName -eq '$($User.'Manager')'" -Properties DisplayName |
Select-Object -ExpandProperty DistinguishedName
}
# Define the parameters using a hashtable
$NewUserParams = @{
Name = "$($User.'First name') $($User.'Last name')"
GivenName = $User.'First name'
Surname = $User.'Last name'
DisplayName = $User.'Display name'
SamAccountName = $User.'User logon name'
UserPrincipalName = $User.'User principal name'
StreetAddress = $User.'Street'
City = $User.'City'
State = $User.'State/province'
PostalCode = $User.'Zip/Postal Code'
Country = $User.'Country/region'
Title = $User.'Job Title'
Department = $User.'Department'
Company = $User.'Company'
Manager = $managerDN
Path = $User.'OU'
Description = $User.'Description'
Office = $User.'Office'
OfficePhone = $User.'Telephone number'
EmailAddress = $User.'E-mail'
MobilePhone = $User.'Mobile'
AccountPassword = (ConvertTo-SecureString "$Password" -AsPlainText -Force)
Enabled = if ($User.'Account status' -eq "Enabled") { $true } else { $false }
ChangePasswordAtLogon = $true # Set the "User must change password at next logon"
}
# Add the info attribute to OtherAttributes only if Notes field contains a value
if (![string]::IsNullOrEmpty($User.Notes)) {
$NewUserParams.OtherAttributes = @{info = $User.Notes }
}
# Check to see if the user already exists in AD
if (Get-ADUser -Filter "SamAccountName -eq '$($User.'User logon name')'") {
# Give a warning if user exists
Write-Host "A user with username $($User.'User logon name') already exists in Active Directory." -ForegroundColor Yellow
}
else {
# User does not exist then proceed to create the new user account
# Account will be created in the OU provided by the $User.OU variable read from the CSV file
New-ADUser @NewUserParams
Write-Host "The user $($User.'User logon name') is created successfully." -ForegroundColor Green
}
}
catch {
# Handle any errors that occur during account creation
Write-Host "Failed to create user $($User.'User logon name') - $($_.Exception.Message)" -ForegroundColor Red
}
}
- Строка 21: Укажите путь к вашему CSV-файлу, отредактировав соответствующую строку.
- Строка 25: Задайте пароль, изменив значение по умолчанию на желаемый.
Шаг 3: Запуск скрипта PowerShell для импорта пользователей AD
Откройте PowerShell от имени администратора и выполните скрипт для импорта пользователей из CSV-файла. Дождитесь завершения работы скрипта.
C:\scripts\.\Import-ADUsers.ps1
Во время выполнения скрипт отобразит следующую информацию:
- Учетная запись успешно создана.
- Учетная запись уже существует.
- Ошибка при создании учетной записи с указанием причины.
A user with username Kylie.Davidson already exists in Active Directory.
A user with username Leonard.Clark already exists in Active Directory.
A user with username Madeleine.Fisher already exists in Active Directory.
A user with username Melanie.Scott already exists in Active Directory.
A user with username Nicholas.Murray already exists in Active Directory.
A user with username Piers.Bower already exists in Active Directory.
A user with username Ruth.Dickens already exists in Active Directory.
The user Sebastian.Nolan is created successfully.
The user Zoe.Roberts is created successfully.
Шаг 4: Проверка пользователей AD
Убедитесь, что пользователи успешно созданы в Active Directory. Для этого проверьте их наличие в соответствующих организационных единицах (OU) и убедитесь, что все данные указаны корректно.
Заключение
Вы узнали, как импортировать пользователей в Active Directory из CSV-файла с помощью PowerShell. Если вы ранее использовали скрипт для экспорта пользователей AD, и теперь хотите импортировать их обратно в Active Directory, выполните скрипт Import AD Users.
Вам понравилась эта статья? Тогда вам, скорее всего, будет интересна другая полезная статья Как экспортировать пользователей AD в CSV с помощью PowerShell.
Интересуешься IT и системным администрированием? Подпишись на SysAdminHub в телеграмм, чтобы узнавать обо всем первым — t.me/SysAdminHub
Статья была полезна? Поддержи автора, и благодаря твоей помощи новые материалы будут выходить еще чаще:
