Загрузка в Active Directory из файла

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

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

 get-help NEW-ADUSER

Вот пример Excel-таблицы с готовыми данными:

cn sn givenName initials company department description City login pass tel email
Иванов Иван Иванов Иван Администрация директор 301 123 301@ Мойдомен.ru
Петров Петр Петров Петр Технический отдел Специалист 303 123 303@ Мойдомен.ru

Выгружаем таблицу виде csv-файла. Должно получится что то вроде этого:

cn;sn;givenName;initials;company;department;description;City;login;pass;tel;email

Иванов Иван; Иванов; Иван;;;Администрация;директор;;301;123;;301@Мойдомен.ru

Петров Петр; Петров;Петр;;;Технический отдел;Специалист;;303;123;;303@ Мойдомен.ru

Теперь сам скрипт:

$UserList=IMPORT-CSV "c:\temp\список.csv" -delimiter ";" -Encoding Default
FOREACH ($Person in $UserList) {
$Domain="@ Мойдомен.RU"
$FullName=$Person.cn
$Company=$Person.company
$Department=$Person.department
$Description=$Person.description
$givenName=$Person.givenName
$initials=$Person.initials
$I=$Person.City
$login=$Person.sAMAccountName
$sn=$Person.sn
$userPrincipalName=$Person.sAMAccountName+$Domain
$pass=$Person.userPassword
$expire=$null
$tel=$Person.tel
$email=$Person.email

NEW-ADUSER -PassThru -Path "OU=Сотрудники, DC= Мойдомен,DC=RU" -Enabled $True -AccountExpirationDate $expire -ChangePasswordAtLogon $True -AccountPassword (ConvertTo-SecureString $pass -AsPlainText -Force) -CannotChangePassword $True -City $I -Company $Company -Department $Department -Description $Description -DisplayName $FullName -GivenName $givenName -Initials $initials -Name $FullName -SamAccountName $login -Surname $sn -Title $Description -UserPrincipalName $userPrincipalName -EmailAddress $email -MobilePhone $tel

Set-ADAccountControl $login -PasswordNeverExpires $True
}

Исправляем:

  • путь до файла
  • Мойдомен
  • Группу OU «Сотрудники»

Список полей:

  • cn — Имя + Фамилия
  • sn — Фамилия
  • givenName — Имя
  • initials — Инициалы Отчество
  • company — наименование организации
  • department — наименование отдела
  • description — должность
  • City — город
  • login — логин пользователя
  • pass — пароль пользователя
  • tel — телефон сотрудника
  • email — почта сотрудника

И запускаем скрипт в Power-Shell

Принципе это все. Стоит отметить некоторые делали…

  • Нужно следить за кодировкой выгрузки файла, а то русские буквы не получаться
  • Лучше попробовать на 1-й строке, исправить одну учетку гораздо легче, чем весть список, если что то загрузится не так…
  • Можно добавить свои параметры ввода учетной записи

например вместо строки:

Set-ADAccountControl $login —PasswordNeverExpires $True

Не требующей смены пароля, можно ввести строку

Set-ADAccountControl $login –ChangePasswordAtLogon $True

Которая потребует сменить пароль пользователя при первом входе в систему

Добавить комментарий

Ваш e-mail не будет опубликован.