Частенько системним адміністраторам при створені нового домену AD, або ще з якихось причин потрібно завести пачку користувачів в домен (мені наприклад таким чином треба було завести велику кількість однотипних користувачів для працівників магазинів ритейл компанії де я працював).
Сьогодні опишу скрипт для додавання користувачів з .csv файлу.
Скрипт написано на Powershel, для його роботи потрібен модуль Module activedirectory, тому для його роботи потрібно мати встановлений RSAT, або імпортувати модуль перед стартом скрипту.
Приклад скрипту з описом:
Import-Module ActiveDirectory
#прописуємо шлях до файлу з я кого скрипт вичитує користувачів для створення
$users = Import-Csv -Path C:\Scripts\Users.csv
#це цикл для створення користувачів, а також перевірка чи є вже такі користувачі в домені, якщо є то виводимо повідомлення і пропускаємо користувача.
foreach ($user in $users) {
$existingUser = Get-ADUser -Filter "SamAccountName -eq '$($user.SamAccountName)'" -ErrorAction SilentlyContinue
if ($existingUser) {
Write-Warning "Korystuvatch ${user.SamAccountName} vzhe isnue v Active Directory. Yoho proignorovano."
continue
}
#далі створюємо користувачів с параметрами що вказані в нашому .csv файлі
New-ADUser `
#значення змінної має співбадати з назвою колонки в файлі
-Name $user.Name `
-DisplayName $user.Name `
-GivenName $user.FirstName `
-Surname $user.LastName `
-UserPrincipalName $upn `
-SamAccountName $user.samAccountName `
-AccountPassword (ConvertTo-SecureString $user.Password -AsPlainText -Force) `
-Path "OU=users,OU=Kyiv,DC=domen,DC=companyname,DC=loc" `
-Enabled $true
#додаємо користувачів в групу, якщо це потрібно
Add-ADGroupMember -Identity "Example group" -Members $user.SamAccountName
#також за потреби можемо видалити користувача з якоїсь групиза потреби (група не повиння бути Primary)
Remove-ADGroupMember -Identity "Domain Users" -Members $user.SamAccountName -Confirm:$false
}
В скрипті параметр -Patch (Organisation Unit) я сказав статично, але його можна вказати в файлі і вичитати з файлу таким чином:
-Path $user.OU `
#значення змінної має співбадати з назвою колонки в файлі
Також наводжу приклад .csv файлу під цей скрипт:
Name,FirsttName,LastName,SamAccountName,Password,OU
Yaroschuk Vitalij Viktorovych,Serhii,Yaroschuk,vyaroschuk,Qaz123457,"""OU=users,OU=Kyiv,DC=domen,DC=companyname,DC=loc"""
Vakoliuk Hennadij Volodymyrovych,Hennadij,Vakoliuk,hvakoliuk,Qaz123458,"""OU=users,OU=Odesa,DC=domen,DC=companyname,DC=loc"""
Seriohin Oleg Semenovych,Oleg,Seriohin,oseriohin,Qaz123459,"""OU=users,OU=Lviv,DC=domen,DC=companyname,DC=loc"""
Закінчив свій перши пост :)
Можливо буде комусь корисно.
Дякую за увагу.